Skip to content

Commit 1971a5c

Browse files
samo-linomlinssimonbyrne
authored
Add MPICHABI support for Cray MPICH (#379)
* Add MPICHABI support for Cray MPICH Co-authored-by: Samuel Omlin <[email protected]> Co-authored-by: Simon Byrne <[email protected]>
1 parent 3e52a3a commit 1971a5c

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

deps/build.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ if binary == "system"
8686
impl, version = identify_implementation()
8787
if (impl == MPICH && version >= v"3.1" ||
8888
impl == IntelMPI && version > v"2014" ||
89-
impl == MVAPICH && version >= v"2")
89+
impl == MVAPICH && version >= v"2" ||
90+
impl == CrayMPICH && version >= v"7")
91+
# https://www.mpich.org/abi/
9092
abi = "MPICH"
9193
elseif impl == OpenMPI || impl == IBMSpectrumMPI
9294
abi = "OpenMPI"

src/implementations.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ An enum corresponding to known MPI implementations
4848
- `IntelMPI`: [Intel MPI](https://software.intel.com/en-us/mpi-library)
4949
- `SpectrimMPI`: [IBM Spectrum MPI](https://www.ibm.com/us-en/marketplace/spectrum-mpi)
5050
- `MVAPICH`: [MVAPICH](http://mvapich.cse.ohio-state.edu/)
51+
- `CrayMPICH`: Part of the Cray Message Passing Toolkit (MPT)
5152
5253
# See also
5354
@@ -61,6 +62,7 @@ An enum corresponding to known MPI implementations
6162
IntelMPI
6263
IBMSpectrumMPI
6364
MVAPICH
65+
CrayMPICH
6466
end
6567

6668
"""
@@ -117,6 +119,13 @@ function identify_implementation()
117119
if (m = match(r"^MVAPICH2? Version\s*:\t(\S*)\n", MPI_LIBRARY_VERSION_STRING)) !== nothing
118120
version = VersionNumber(m.captures[1])
119121
end
122+
123+
elseif occursin("CRAY MPICH", MPI_LIBRARY_VERSION_STRING)
124+
impl = CrayMPICH
125+
# "MPI VERSION : CRAY MPICH version 7.7.10 (ANL base 3.2)\n"
126+
if (m = match(r"CRAY MPICH version (\d+.\d+.\d+)", MPI_LIBRARY_VERSION_STRING)) !== nothing
127+
version = VersionNumber(m.captures[1])
128+
end
120129
end
121130

122131
return impl, version

0 commit comments

Comments
 (0)