diff --git a/deps/build.jl b/deps/build.jl index 1c119ca8a..3ae72e021 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -86,7 +86,9 @@ if binary == "system" impl, version = identify_implementation() if (impl == MPICH && version >= v"3.1" || impl == IntelMPI && version > v"2014" || - impl == MVAPICH && version >= v"2") + impl == MVAPICH && version >= v"2" || + impl == CrayMPICH && version >= v"7") + # https://www.mpich.org/abi/ abi = "MPICH" elseif impl == OpenMPI || impl == IBMSpectrumMPI abi = "OpenMPI" diff --git a/src/implementations.jl b/src/implementations.jl index f91fc2a24..b631bb1e8 100644 --- a/src/implementations.jl +++ b/src/implementations.jl @@ -48,6 +48,7 @@ An enum corresponding to known MPI implementations - `IntelMPI`: [Intel MPI](https://software.intel.com/en-us/mpi-library) - `SpectrimMPI`: [IBM Spectrum MPI](https://www.ibm.com/us-en/marketplace/spectrum-mpi) - `MVAPICH`: [MVAPICH](http://mvapich.cse.ohio-state.edu/) +- `CrayMPICH`: Part of the Cray Message Passing Toolkit (MPT) # See also @@ -61,6 +62,7 @@ An enum corresponding to known MPI implementations IntelMPI IBMSpectrumMPI MVAPICH + CrayMPICH end """ @@ -117,6 +119,13 @@ function identify_implementation() if (m = match(r"^MVAPICH2? Version\s*:\t(\S*)\n", MPI_LIBRARY_VERSION_STRING)) !== nothing version = VersionNumber(m.captures[1]) end + + elseif occursin("CRAY MPICH", MPI_LIBRARY_VERSION_STRING) + impl = CrayMPICH + # "MPI VERSION : CRAY MPICH version 7.7.10 (ANL base 3.2)\n" + if (m = match(r"CRAY MPICH version (\d+.\d+.\d+)", MPI_LIBRARY_VERSION_STRING)) !== nothing + version = VersionNumber(m.captures[1]) + end end return impl, version