...
Assuming MY_DAOS_INSTALL_PATH is set, you can run:
( Note: for the SC22 version of IO500, line 9 of this patch has been changed to the new SC22 version)
Code Block | ||
---|---|---|
| ||
cat << EOF > io500_prepare.patch diff --git a/prepare.sh b/prepare.sh index e38cae6..54dbba5 100755 --- a/prepare.sh +++ b/prepare.sh @@ -8,7 +8,7 @@ echo It will output OK at the end if builds succeed echo IOR_HASH=bbfea005e2c05726da07171dfe3dfdd6c6011e14 -PFIND_HASH=778dca8 +PFIND_HASH=dfs_find INSTALL_DIR=\$PWD BIN=\$INSTALL_DIR/bin @@ -59,7 +59,7 @@ function get_ior { function get_pfind { echo "Preparing parallel find" - git_co https://github.com/VI4IO/pfind.git pfind \$PFIND_HASH + git_co https://github.com/mchaarawi/pfind pfind \$PFIND_HASH } function get_schema_tools { @@ -73,7 +73,7 @@ function build_ior { pushd "\$BUILD"/ior ./bootstrap # Add here extra flags - ./configure --prefix="\$INSTALL_DIR" + ./configure --prefix="\$INSTALL_DIR" --with-daos=\${MY_DAOS_INSTALL_PATH} cd src \$MAKE clean \$MAKE install EOF git apply io500_prepare.patch |
...
Code Block | ||
---|---|---|
| ||
dmg pool create -z 100G --label=100% io500_pool daos container create --type POSIX --pool io500_pool --label=io500_cont |
Set the pool and cont environment variables
...
Run the binary directly with or without the extended mode:
Code Block language bash mpirun -np 16 --hostfile ~/config/cli_hosts ./io500 temp.ini mpirun -np 16 --hostfile ~/config/cli_hosts ./io500 temp.ini --mode=extended
The extended mode is not required for an official submission and will extend your runtime significantly. After the run completes, you will need to tar up the result dir for that run.
Note that some versions of OpenMPI require setting the environment variables on the mpirun command line, so one needs to add the environment variables that are mentioned above on the mpirun command line with the following format:
Code Block language bash mpirun -np 16 -x env1=value1 -x env2=value2 --hostfile ~/config/cli_hosts ./io500 temp.ini
Run the io-500.sh script:
This requires mounting dfuse on the launch node only (not all the compute nodes):
Code Block language bash mkdir /tmp/dfuse dfuse /tmp/dfuse/ --pool=$DAOS_POOL --container=$DAOS_CONT -m /tmp/dfuse/
Then, edit the io500.sh launch script with the mpirun command and change the local workdir, to add the dfuse prefix
Code Block language bash diff --git a/io500.sh b/io500.sh index 5f0bb89..dd62c35 100755 --- a/io500.sh +++ b/io500.sh @@ -12,10 +12,10 @@ # This script takes its parameters from the same .ini file as io500 binary. io500_ini="$1" # You can set the ini file here io500_mpirun="mpiexec" -io500_mpiargs="-np 2" +io500_mpiargs="-np 16 --hostfile ~/config/cli_hosts" function setup(){ - local workdir="$1" + local workdir="/tmp/dfuse/$1" local resultdir="$2" mkdir -p $workdir $resultdir
Note that some versions of OpenMPI require setting the environment variables on the mpirun command line, so one needs to add the environment variables that are mentioned above on the mpirun command line in the script here with the following format:
Code Block language bash io500_mpiargs="-np 16 -x env1=value1 -x env2=value2 --hostfile ~/config/cli_hosts
Then run the io500.sh script which will tar the results for you at the end and place them in the result directory you specified in the ini file:
Code Block language bash ./io500.sh temp.ini
Lastly umount dfuse on the launch node:
Code Block language bash fusermount3 -u /tmp/dfuse/
...