Skip to content

Commit 668f267

Browse files
committed
New ABI: MPIABI
1 parent b06cb8c commit 668f267

2 files changed

Lines changed: 458 additions & 14 deletions

File tree

lib/MPIPreferences/src/MPIPreferences.jl

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ const DEPS_LOADED = Ref(false)
1616
1717
The currently selected binary. The possible values are
1818
19+
- `"MPIABI_jll"`: use the binary provided by [MPIABI_jll](https://github.com/JuliaBinaryWrappers/MPIABI_jll.jl)
1920
- `"MPICH_jll"`: use the binary provided by [MPICH_jll](https://github.com/JuliaBinaryWrappers/MPICH_jll.jl)
20-
- `"OpenMPI_jll"`: use the binary provided by [OpenMPI_jll](https://github.com/JuliaBinaryWrappers/OpenMPI_jll.jl)
21-
- `"MicrosoftMPI_jll"`: use binary provided by [MicrosoftMPI_jll](https://github.com/JuliaBinaryWrappers/MicrosoftMPI_jll.jl/)
2221
- `"MPItrampoline_jll"`: use the binary provided by [MPItrampoline_jll](https://github.com/JuliaBinaryWrappers/MPItrampoline_jll.jl/)
22+
- `"MicrosoftMPI_jll"`: use binary provided by [MicrosoftMPI_jll](https://github.com/JuliaBinaryWrappers/MicrosoftMPI_jll.jl/)
23+
- `"OpenMPI_jll"`: use the binary provided by [OpenMPI_jll](https://github.com/JuliaBinaryWrappers/OpenMPI_jll.jl)
2324
- `"system"`: use a system-provided binary.
2425
2526
"""
@@ -30,22 +31,24 @@ const binary = @load_preference("binary", Sys.iswindows() ? "MicrosoftMPI_jll" :
3031
3132
The ABI (application binary interface) of the currently selected binary. Supported values are:
3233
34+
- `"MPIABI"`: MPI-ABI-compatible ABI (https://www.mpi-form.org/)
3335
- `"MPICH"`: MPICH-compatible ABI (https://www.mpich.org/abi/)
34-
- `"OpenMPI"`: Open MPI compatible ABI (Open MPI, IBM Spectrum MPI, Fujitsu MPI)
35-
- `"MicrosoftMPI"`: Microsoft MPI
3636
- `"MPItrampoline"`: MPItrampoline
37-
- `"HPE MPT"`: HPE MPT
37+
- `"MicrosoftMPI"`: Microsoft MPI
38+
- `"OpenMPI"`: Open MPI compatible ABI (Open MPI, IBM Spectrum MPI, Fujitsu MPI)
3839
"""
3940
const abi = if binary == "system"
4041
@load_preference("abi")
41-
elseif binary == "MicrosoftMPI_jll"
42-
"MicrosoftMPI"
42+
elseif binary == "MPIABI_jll"
43+
"MPIABI"
4344
elseif binary == "MPICH_jll"
4445
"MPICH"
45-
elseif binary == "OpenMPI_jll"
46-
"OpenMPI"
4746
elseif binary == "MPItrampoline_jll"
4847
"MPItrampoline"
48+
elseif binary == "MicrosoftMPI_jll"
49+
"MicrosoftMPI"
50+
elseif binary == "OpenMPI_jll"
51+
"OpenMPI"
4952
else
5053
error("Unknown binary: $binary")
5154
end
@@ -66,16 +69,17 @@ Switches the underlying MPI implementation to one provided by JLL packages. A
6669
restart of Julia is required for the changes to take effect.
6770
6871
Available options are:
69-
- `"MicrosoftMPI_jll"` (Only option and default on Windows)
72+
- `"MPIABI_jll"`
7073
- `"MPICH_jll"` (Default on all other platform)
71-
- `"OpenMPI_jll"`
7274
- `"MPItrampoline_jll"`
75+
- `"MicrosoftMPI_jll"` (Only option and default on Windows)
76+
- `"OpenMPI_jll"`
7377
7478
The `export_prefs` option determines whether the preferences being set should be
7579
stored within `LocalPreferences.toml` or `Project.toml`.
7680
"""
7781
function use_jll_binary(binary = Sys.iswindows() ? "MicrosoftMPI_jll" : "MPICH_jll"; export_prefs=false, force=true)
78-
known_binaries = ("MicrosoftMPI_jll", "MPICH_jll", "OpenMPI_jll", "MPItrampoline_jll")
82+
known_binaries = ("MPIABI_jll", "MPICH_jll", "MicrosoftMPI_jll", "MPItrampoline_jll", "OpenMPI_jll")
7983
binary in known_binaries ||
8084
error("""
8185
Unknown jll: $binary.
@@ -118,7 +122,7 @@ end
118122

119123
"""
120124
use_system_binary(;
121-
library_names = ["libmpi", "libmpi_ibm", "msmpi", "libmpich", "libmpi_cray", "libmpitrampoline"],
125+
library_names = ["libmpi", "libmpi_abi", "libmpi_ibm", "msmpi", "libmpich", "libmpi_cray", "libmpitrampoline"],
122126
extra_paths = String[],
123127
mpiexec = "mpiexec",
124128
abi = nothing,
@@ -162,7 +166,7 @@ Options:
162166
- `force`: if `true`, the preferences are set even if they are already set.
163167
"""
164168
function use_system_binary(;
165-
library_names=["libmpi", "libmpi_ibm", "msmpi", "libmpich", "libmpi_cray", "libmpitrampoline"],
169+
library_names=["libmpi", "libmpi_abi", "libmpi_ibm", "msmpi", "libmpich", "libmpi_cray", "libmpitrampoline"],
166170
extra_paths=String[],
167171
mpiexec="mpiexec",
168172
abi=nothing,

0 commit comments

Comments
 (0)