-
Notifications
You must be signed in to change notification settings - Fork 125
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9e836af
commit 95c3627
Showing
9 changed files
with
1,104 additions
and
15 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
###################### | ||
ADIOS2 in ECP hardware | ||
###################### | ||
|
||
ADIOS2 is widely used in ECP (Exascale Computing Project) HPC (high performance | ||
computing) systems, some particular ADIOS2 features needs from specifics | ||
workarounds to run successfully. | ||
|
||
OLCF CRUSHER | ||
============ | ||
|
||
SST MPI Data Transport | ||
---------------------- | ||
|
||
MPI Data Transport relies on client-server features of MPI which are currently | ||
supported in Cray-MPI implementations with some caveats. Here are some of the | ||
observed issues and what its workaround (if any) are: | ||
|
||
**MPI_Finalize** will block the system process in the "Writer/Producer" ADIOS2 | ||
instance. The reason is that the Producer ADIOS instance internally calls | ||
`MPI_Open_port` which somehow even after calling `MPI_Close_port` `MPI_Finalize` | ||
still consider its port to be in used, hence blocking the process. The | ||
workaround is to use a `MPI_Barrier(MPI_COMM_WORLD)` instead of `MPI_Finalize()` | ||
call. | ||
|
||
**srun does not understand mpmd instructions** Simply disable them with the flag | ||
`-DADIOS2_RUN_MPI_MPMD_TESTS=OFF` | ||
|
||
**Tests timeout** Since we launch every tests with srun the scheduling times | ||
can exceed the test default timeout. Use a large timeout (5mins) for running | ||
your tests. | ||
|
||
Examples of launching ADIOS2 SST unit tests using MPI DP: | ||
|
||
.. code-block:: bash | ||
# We omit some of the srun (SLURM) arguments which are specific of the project | ||
# you are working on. Note that you could avoid calling srun directly by | ||
# setting the CMAKE variable `MPIEXEC_EXECUTABLE`. | ||
# Launch simple writer test instance | ||
srun {PROJFLAGS }-N 1 /gpfs/alpine/proj-shared/csc331/vbolea/ADIOS2-build/bin/TestCommonWrite SST mpi_dp_test CPCommPattern=Min,MarshalMethod=BP5' | ||
# On another terminal launch multiple instances of the Reader test | ||
srun {PROJFLAGS} -N 2 /gpfs/alpine/proj-shared/csc331/vbolea/ADIOS2-build/bin/TestCommonRead SST mpi_dp_test | ||
Alternatively, you can configure your CMake build to use srun directly: | ||
.. code-block:: bash | ||
cmake . -DMPIEXEC_EXECUTABLE:FILEPATH="/usr/bin/srun" \ | ||
-DMPIEXEC_EXTRA_FLAGS:STRING="-A{YourProject} -pbatch -t10" \ | ||
-DMPIEXEC_NUMPROC_FLAG:STRING="-N" \ | ||
-DMPIEXEC_MAX_NUMPROCS:STRING="-8" \ | ||
-DADIOS2_RUN_MPI_MPMD_TESTS=OFF | ||
cmake --build . | ||
ctest | ||
# monitor your jobs | ||
watch -n1 squeue -l -u $USER |
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
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
Oops, something went wrong.