... | @@ -146,28 +146,32 @@ Except for the MPI and the node-internal CUDA transport layer, all layers utiliz |
... | @@ -146,28 +146,32 @@ Except for the MPI and the node-internal CUDA transport layer, all layers utiliz |
|
With any transport layer but MPI or intra-node CUDA it is important to make sure that the PMI (not MPI) environment is correctly set up. The easiest way to achieve this using slurm is: `srun --mpi=pmi2` or `srun --mpi=pmix`. If this option is not available or not supported by slurm please consult the relevant PMI documentation for your system.
|
|
With any transport layer but MPI or intra-node CUDA it is important to make sure that the PMI (not MPI) environment is correctly set up. The easiest way to achieve this using slurm is: `srun --mpi=pmi2` or `srun --mpi=pmix`. If this option is not available or not supported by slurm please consult the relevant PMI documentation for your system.
|
|
|
|
|
|
## Supported Combinations of Communication APIs & Various Options
|
|
## Supported Combinations of Communication APIs & Various Options
|
|
|
|
|
|
Not all option combinations are currently possible. The following table shows supported combinations.
|
|
Not all option combinations are currently possible. The following table shows supported combinations.
|
|
|
|
|
|
| Option | MPI | TCP | UCP | IB Verbs | PSM2 |CUDA |
|
|
| Option | MPI | TCP | UCP | IB Verbs | PSM2 |CUDA |
|
|
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
|
| ------------------ | ---------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
|
| Unidirectional\* | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :x: |
|
|
| Unidirectional | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | :x: |
|
|
| Semidirectional | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Semidirectional | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Bidirectional | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Bidirectional | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
|
|
| Bisection | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
|
|
| Hostname Grouping | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| All-to-All | :heavy_check_mark: | :x: | :x: | :x: | :x: | :x: |
|
|
| All-to-All | :heavy_check_mark: | :x: | :x: | :x: | :x: | :x: |
|
|
| Randomize | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Randomize | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Serial Tests | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Serial Tests | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| No SION File | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| No SION File | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Parallel SION File | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Parallel SION File | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
|
|
| Use GPU Memory | :heavy_check_mark:\*\* | :x: | :x: | :x: | :x: | :heavy_check_mark: |
|
|
| Min. Iterations | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Min. Iterations | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Min. Runtime | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Min. Runtime | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Use Multi. Buffers | :heavy_check_mark:\* | :x: | :x: | :x: | :x: | :x: |
|
|
| Use Multi. Buffers | :heavy_check_mark:\* | :x: | :x: | :x: | :x: | :x: |
|
|
| Check Buffers | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Check Buffers | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
| Randomize Buffers | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: |
|
|
| Randomize Buffers | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: |
|
|
|
|
| Randomize IDs | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
|
|
|
|
|
:heavy_check_mark: : Implemented
|
|
:heavy_check_mark: : Implemented
|
|
:x: : Not-Implemented
|
|
:x: : Not-Implemented
|
|
\* : Only works for unidirectional
|
|
\* : Only works for unidirectional
|
|
|
|
\*\* : Requires a CUDA-aware MPI implementation
|
|
|
|
|
|
## Performing bisection bandwidth tests
|
|
## Performing bisection bandwidth tests
|
|
**Currently only works with MPI**
|
|
**Currently only works with MPI**
|
... | | ... | |