4a3e4806bd
Bugfix MDTest calculation of multiple iterations was incorrect. Fix the bug reported by Rick to increase clarity. The previous offset calculation when using multiple iterations was: for (i = start; i < stop; i++) // i = table position == test number for (k=0; k < size; k++) for (j = 0; j < iterations; j++) value = all[(k * tableSize * iterations) + (j*tableSize) + i]; Note that the mean and min/max was then computed over these values. But as the values were stored in memory in the order: iteration, rank, table the correct term is: value = all[j * tableSize * size + k * tableSize + i]; Assume iterations = 2 and size = 3, the value for the test i=0 was computed from: all[0 * 2 *tbl + 0 * tbl] = 0tbl all[0 * 2 *tbl + 1 * tbl] = 1tbl all[1 * 2 *tbl + 0 * tbl] = 2tbl all[1 * 2 *tbl + 1 * tbl] = 3tbl all[2 * 2 *tbl + 0 * tbl] = 4tbl all[2 * 2 *tbl + 1 * tbl] = 5tbl A more clear traversal would have been: all[0 * 3 *tbl + 0 * tbl] = 0tbl all[0 * 3 *tbl + 1 * tbl] = 1tbl all[0 * 3 *tbl + 2 * tbl] = 2tbl all[1 * 3 *tbl + 0 * tbl] = 3tbl all[1 * 3 *tbl + 1 * tbl] = 4tbl all[1 * 3 *tbl + 2 * tbl] = 5tbl In that sense, it wasn't a functional bug but it decreased readability and now that we want to print the performance of the individual ranks, it is useful to fix this. |
||
---|---|---|
config | ||
contrib | ||
doc | ||
src | ||
testing | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
COPYRIGHT | ||
META | ||
Makefile.am | ||
NEWS | ||
README.md | ||
README_DAOS | ||
README_S3 | ||
bootstrap | ||
configure.ac | ||
travis-build.sh | ||
travis-test.sh |
README.md
HPC IO Benchmark Repository
This repository contains the IOR and mdtest parallel I/O benchmarks. The
official IOR/mdtest documentation can be found in the docs/
subdirectory
or on Read the Docs.
Building
-
If
configure
is missing from the top level directory, you probably retrieved this code directly from the repository. Run./bootstrap
to generate the configure script. Alternatively, download an official IOR release which includes the configure script. -
Run
./configure
. For a full list of configuration options, use./configure --help
. -
Run
make
-
Optionally, run
make install
. The installation prefix can be changed via./configure --prefix=...
.
Testing
- Run
make check
to invoke the unit tests. - More comprehensive functionality tests are included in
testing/
. These scripts will launch IOR and mdtest via MPI. - Docker scripts are also provided in
testing/docker/
to test various distributions at once.