38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
# mpi_test
|
|
|
|
Various standalone C++ MPI tests/examples/benchmarks.
|
|
|
|
If CUDA is detected, additional binaries can be built.
|
|
|
|
| name | Kind | Reqs. | Ranks | Description |
|
|
|---------------|-----------|----------|-------|-------------|
|
|
|`hello-world` | Test | MPI | 1+ | an MPI hello-world |
|
|
|`one-sided` | Test | MPI | 2 | one-sided communication |
|
|
|`one-sided-gpu`| Test | MPI+CUDA | 2 | one-sided communication on GPU buffer |
|
|
|`persistent` | Benchmark | MPI | 2 | ping-pong time for persistent Send/Recv |
|
|
|
|
## Build
|
|
```
|
|
mkdir build && cd build
|
|
cmake ..
|
|
make
|
|
```
|
|
|
|
## Run all tests
|
|
|
|
`run-all.sh` attempts to discover certain environments automatically.
|
|
You can always override the detected flags yourself if you want.
|
|
|
|
```
|
|
./run-all.sh | grep 'PASS\|FAIL'
|
|
```
|
|
|
|
If any tests fails, you can re-run them individually.
|
|
|
|
## Run individual tests
|
|
|
|
Execute any binary you want using `mpirun`, or whatever is appropriate for your platform.
|
|
|
|
## Notes on specific platforms
|
|
|
|
Some Open MPIs use `long long` for their datatypes, which means we can't support ANSI C++ (`-ansi`). |