-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Renaming files to make naming scheme more consistent; - Moving environtment variable definitons to toplevel; - Move GBS science to workflow category; - Use environment variables to define pathes referenced in the documentations.
- Loading branch information
Dan Sun
authored and
Dan Sun
committed
Jun 19, 2018
1 parent
ce9f45c
commit 2e42283
Showing
30 changed files
with
226 additions
and
144 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# Update this according to local directory structure | ||
# and source it before running any benchmarks | ||
|
||
# root directory to the benchmark source | ||
BENCHMARK_SOURCE=$PWD | ||
export BENCHMARK_SOURCE | ||
|
||
# root directory for benchmarks | ||
BENCHMARK_ROOT=/tmp/benchmarks | ||
export BENCHMARK_ROOT | ||
mkdir -p $BENCHMARK_ROOT | ||
|
||
# input data for all benchmarks | ||
INPUT_DATA_ROOT_DIR=$BENCHMARK_ROOT/benchmark_input_data | ||
export INPUT_DATA_ROOT_DIR | ||
|
||
# output directories | ||
OUTPUT_DATA_ROOT_DIR=$BENCHMARK_ROOT/benchmark_output_data | ||
export OUTPUT_DATA_ROOT_DIR | ||
|
||
## Platform benchmarks | ||
# IOR benchmark | ||
|
||
IOR_CONDA_ENV=$BENCHMARK_ROOT/conda-env/ior | ||
IOR_CONDA_ENV_SPEC=$BENCHMARK_SOURCE/platform/IOR/ior-conda-env.yml | ||
export IOR_CONDA_ENV | ||
export IOR_CONDA_ENV_SPEC | ||
|
||
# IOZONE benchmark | ||
IOZONE_CONDA_ENV=$BENCHMARK_ROOT/conda-env/iozone | ||
IOZONE_CONDA_ENV_SPEC=$BENCHMARK_SOURCE/platform/IOZONE/iozone-conda-env.yml | ||
export IOZONE_CONDA_ENV | ||
export IOZONE_CONDA_ENV_SPEC | ||
|
||
## Science benchmarks | ||
# ABYSS benchmark | ||
ABYSS_CONDA_ENV=$BENCHMARK_ROOT/conda-env/abyss | ||
ABYSS_CONDA_ENV_SPEC=$BENCHMARK_SOURCE/science/abyss/abyss-conda-env.yml | ||
export ABYSS_CONDA_ENV | ||
export ABYSS_CONDA_ENV_SPEC | ||
NCORES=20 | ||
export NCORES | ||
|
||
# VELVET benchmark | ||
VELVET_CONDA_ENV=$BENCHMARK_ROOT/conda-env/velvet | ||
VELVET_CONDA_ENV_SPEC=$BENCHMARK_SOURCE/science/velvet/velvet-conda-env.yml | ||
export VELVET_CONDA_ENV | ||
export VELVET_CONDA_ENV_SPEC | ||
|
||
## Workflow benchmarks | ||
# GBS | ||
GBS_CONDA_ENV=$BENCHMARK_ROOT/conda-env/gbs | ||
GBS_CONDA_ENV_SPEC=$BENCHMARK_SOURCE/workflow/gbs/gbs-conda-env.yml | ||
export GBS_CONDA_ENV | ||
export GBS_CONDA_ENV_SPEC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,27 +11,26 @@ It measures the sustainable bandwidth of a file system using the various APIs, | |
Download the latest release (v3.1.0) from GitHub and unpack the file. | ||
|
||
``` | ||
mkdir -p /tmp/benchmark/ | ||
cd /tmp/benchmark/ | ||
git clone [email protected]:AgResearch/ior.git | ||
$ cd $BENCHMARK_ROOT | ||
$ git clone [email protected]:AgResearch/ior.git | ||
``` | ||
|
||
Create a Conda environment based on the provided environment file and then activate the environment before building and running the benchmark. For example: | ||
Create a Conda environment based on the provided environment specification file and then activate the environment before building and running the benchmark. For example: | ||
|
||
``` | ||
conda-env conda-env create -p /tmp/benchmark/ior-env -f <path>/ior-conda-env.yml | ||
source activate /tmp/benchmark/ior-env | ||
$ mkdir -p $IOR_CONDA_ENV | ||
$ conda-env create -p $IOR_CONDA_ENV -f $IOR_CONDA_ENV_SPEC | ||
$ source activate $IOR_CONDA_ENV | ||
``` | ||
|
||
Use the following instructions to navigate into directory, ior, and to build it. | ||
|
||
``` | ||
cd ior | ||
./bootstrap | ||
./configure --prefix=$PWD | ||
make | ||
make install | ||
$ cd $BENCHMARK_ROOT/ior | ||
$ ./bootstrap | ||
$ ./configure --prefix=$CONDA_PREFIX | ||
$ make | ||
$ make install | ||
``` | ||
|
||
## Execution | ||
|
@@ -41,9 +40,8 @@ make install | |
Run IOR to benchmark the performance of a single process writing to a file and then reading such a file sequentially. The following commands serve as an example, you may need to customise it for the benchmarking platform. | ||
|
||
``` | ||
cd /tmp/benchmark/ior/bin | ||
source activate /tmp/benchmark/ior-env | ||
./ior -a POSIX -w -r -e -b <block_size> -o <path_to_target_filesystem>\ior_seq_test | ||
$ source activate $IOR_CONDA_ENV | ||
$ ior -a POSIX -w -r -e -b <block_size> -o <path_to_target_filesystem>\ior_seq_test | ||
``` | ||
|
||
Where ```<block_size>``` should be at least twice as large as the size of the compute node where the benchmark is executed and ``` <path_to_target_filesystem>``` is the path to the target filesystem that is been benchmarked. | ||
|
@@ -53,12 +51,13 @@ Where ```<block_size>``` should be at least twice as large as the size of the co | |
Run IOR tests concurrently to benchmark the performance of a filesystem on a compute node. The following is an example bash script for this test, although it may need to be customised for the benchmarking platform. | ||
|
||
``` | ||
source activate $IOR_CONDA_ENV | ||
echo "Preparing testing data..." | ||
./ior -a POSIX -w -e -k -b <block_size> -o <path_to_target_filesystem>/ior_rw_test > ./ior_concurent.out | ||
ior -a POSIX -w -e -k -b <block_size> -o <path_to_target_filesystem>/ior_rw_test > ./ior_concurent.out | ||
echo "Starging Concurrent Read..." | ||
./ior -a POSIX -r -b <block_size> -o <path_to_target_filesystem>/ior_rw_test > ./ior_concurent_r.out& | ||
ior -a POSIX -r -b <block_size> -o <path_to_target_filesystem>/ior_rw_test > ./ior_concurent_r.out& | ||
echo "Starting Concurrent Write..." | ||
./ior -a POSIX -w -e -b <block_size> -o <path_to_target_filesystem>/ior_rw_test2 > ./ior_concurent_w.out | ||
ior -a POSIX -w -e -b <block_size> -o <path_to_target_filesystem>/ior_rw_test2 > ./ior_concurent_w.out | ||
echo "Done!" | ||
``` | ||
|
||
|
@@ -69,9 +68,8 @@ Where ```<block_size>``` should be at least twice as large as the size of the co | |
Run IOR as a MPI program to benchmark the write and read performance of a platform's filesystem. The following commands serve as an example, you may need to customise it for the benchmarking platform. | ||
|
||
``` | ||
cd /tmp/benchmark/ior/bin | ||
source activate /tmp/benchmark/ior-env | ||
mpirun -np <num_tasks> -N <num_tasks_per_node> ./ior -a MPIIO -w -r -N <num_tasks> -b <block_size> -o <path_to_target_filesystem>\ior_seq_test | ||
$ source activate $IOR_CONDA_ENV | ||
$ mpirun -np <num_tasks> -N <num_tasks_per_node> ior -a MPIIO -w -r -N <num_tasks> -b <block_size> -o <path_to_target_filesystem>\ior_seq_test | ||
``` | ||
|
||
Where ```<num_tasks>``` should be large to create sufficient load to test the aggregated bandwidth of the specified filesystem, ```<num_tasks_per_node>``` is number of tasks to run on a allocated node, ```<block_size>``` times ```<num_tasks_per_node>``` should be twice as large as the size of the compute node where the benchmark is executed, and ```<path_to_target_filesystem>``` is the path to the target filesystem that is been benchmarked. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: iozone-env | ||
channels: | ||
- bioconda | ||
- conda-forge | ||
- defaults | ||
- r | ||
dependencies: | ||
- gmp=6.1.2=0 | ||
- mpc=1.1.0=4 | ||
- mpfr=3.1.5=0 | ||
- cloog=0.18.0=0 | ||
- gcc=4.8.5=7 | ||
- isl=0.12.2=0 | ||
prefix: /tmp/iozone |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.