... | ... | @@ -8,7 +8,7 @@ IO500 can be run with GekkoFS either with `srun` or `mpirun/mpiexec` on the clie |
|
|
|
|
|
There are usually dedicated branches for the calls for submission, e.g., `io500-isc20` for ISC 2020. Therefore, the following steps are needed to build IO500 on your system.
|
|
|
|
|
|
```
|
|
|
```bash
|
|
|
git clone https://github.com/VI4IO/io500-app.git -b io500-isc20
|
|
|
cd io500
|
|
|
./prepare.sh
|
... | ... | @@ -18,4 +18,44 @@ Note: Sometimes there are issues building `pfind` because `mpicc` is not found. |
|
|
|
|
|
## Configuring IO500
|
|
|
|
|
|
When running IO500, you can add any file system settings that you need, e.g., env variables, to `io500.sh`. There will be a comment where you are not allowed to add anything thereafter. |
|
|
\ No newline at end of file |
|
|
When running IO500, you can add any file system settings that you need, e.g., env variables, to `io500.sh`. There will be a comment where you are not allowed to add anything thereafter.
|
|
|
|
|
|
### mpirun/mpiexec io500.sh
|
|
|
|
|
|
Configuring `io500.sh` requires two modifications:
|
|
|
1. Setting the mpi executable and the arguments when running. `-np 240` runs io500 with 240 processes, distributed on the number of nodes in `/home/vef/hostfile`. All environment variables, e.g., `LD_PRELOAD` are passing with the `-x` parameter
|
|
|
2. During `setup_directories`, we need to create the benchmark directories in GekkoFS (see below).
|
|
|
|
|
|
```bash
|
|
|
function setup_paths {
|
|
|
io500_ior_cmd=$PWD/bin/ior
|
|
|
io500_mdtest_cmd=$PWD/bin/mdtest
|
|
|
io500_mpirun="mpiexec"
|
|
|
io500_mpiargs="-np 240 --oversubscribe --map-by node --hostfile /home/vef/hostfile -x LIBGKFS_LOG_OUTPUT=/dev/shm/gkfs_client.log -x LIBGKFS_LOG=info -x LD_PRELOAD=/lustre/miifs01/project/m2_zdvresearch/vef/sshfs/gekkofs/build/src/client/libgkfs_intercept.so -x LIBGKFS_HOSTS_FILE=/lustre/miifs01/project/m2_zdvresearch/vef/gkfs_hostfile -x FI_PSM2_DISCONNECT=1 -x PSM2_MULTI_EP=1"
|
|
|
}
|
|
|
|
|
|
# Set directories where benchmark files are created and where the results go.
|
|
|
# If you want to set up stripe tuning on your output directories or anything
|
|
|
# similar, then this is the right place to do it.
|
|
|
function setup_directories {
|
|
|
local workdir
|
|
|
local resultdir
|
|
|
local ts
|
|
|
|
|
|
mkdir -p $io500_workdir $io500_resultdir
|
|
|
|
|
|
LIBGKFS_HOSTS_FILE=/lustre/miifs01/project/m2_zdvresearch/vef/gkfs_hostfile LD_PRELOAD=/lustre/miifs01/project/m2_zdvresearch/vef/sshfs/gekkofs/build/src/client/libgkfs_intercept.so mkdir -p $io500_workdir-{scr,app}/{ior_easy,ior_hard,mdtest_easy,mdtest_hard} $io500_resultdir-{scr,app}
|
|
|
|
|
|
mkdir -p $io500_workdir-{scr,app} $io500_resultdir-{scr,app}
|
|
|
}
|
|
|
|
|
|
# ***** YOU SHOULD NOT EDIT ANYTHING BELOW THIS LINE *****
|
|
|
```
|
|
|
|
|
|
### srun io500.sh
|
|
|
|
|
|
XXX @Ramon
|
|
|
|
|
|
### io500 config
|
|
|
|
|
|
The next step is to set the general rules how io500 runs with regards to runtime, number of files for mdtest_easy, benchmark directory, etc. For an io500 run to be successful it must run 300 seconds per experiment. Most benchmark parameters are fixed, but others like ior_easy can be modified. Consult the config file for further info. Note, that the number of processes that are used is separately defined `[find]` section of config file. |
|
|
\ No newline at end of file |