I am using MPI.jl on an HPC cluster.
I got a warning
┌ Warning: You appear to be using MPI.jl with the default MPI binary on a cluster.
│ We recommend using the system-provided MPI, see the Configuration section of the MPI.jl docs.
└ @ MPI ~/.julia/packages/MPI/b7MVG/deps/deps.jl:15
so I set up ENV["JULIA_MPI_BINARY"]="system"
and build MPI.
Now, I am getting a new warning
┌ Warning: Error requiring `MPICH_jll` from `MPI`
│ exception =
│ MPICH_jll cannot be loaded: MPI.jl is configured to use the system MPI library
Seemingly, this issue occurs when I am using two nodes, but not when I am using one node.
I would appreciate any hints as to figuring out what might be happening here.
Can you show the next line of the Warning with the line number?
Also what version of MPI.jl are you using? You can find it by Pkg.status()
This is v0.16.1.
The complete message is
┌ Warning: Error requiring `MPICH_jll` from `MPI`
│ exception =
│ MPICH_jll cannot be loaded: MPI.jl is configured to use the system MPI library
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] top-level scope at none:1
│ [3] eval at ./boot.jl:331 [inlined]
│ [4] eval at /home/username/.julia/packages/MPI/b7MVG/src/MPI.jl:1 [inlined]
│ [5] (::MPI.var"#3#12")() at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:99
│ [6] err(::Any, ::Module, ::String) at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:47
│ [7] (::MPI.var"#2#11")() at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:98
│ [8] withpath(::Any, ::String) at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:37
│ [9] (::MPI.var"#1#10")() at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:97
│ [10] listenpkg(::Any, ::Base.PkgId) at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:20
│ [11] macro expansion at /home/username/.julia/packages/Requires/7Ncym/src/require.jl:95 [inlined]
│ [12] __init__deps() at /home/username/.julia/packages/MPI/b7MVG/deps/deps.jl:14
│ [13] __init__() at /home/username/.julia/packages/MPI/b7MVG/src/MPI.jl:67
│ [14] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:697
│ [15] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:782
│ [16] _tryrequire_from_serialized(::Base.PkgId, ::UInt64, ::Nothing) at ./loading.jl:712
│ [17] _require_from_serialized(::String) at ./loading.jl:744
│ [18] _require(::Base.PkgId) at ./loading.jl:1040
│ [19] require(::Base.PkgId) at ./loading.jl:928
│ [20] require(::Module, ::Symbol) at ./loading.jl:923
│ [21] include(::Function, ::Module, ::String) at ./Base.jl:380
│ [22] include(::Module, ::String) at ./Base.jl:368
│ [23] exec_options(::Base.JLOptions) at ./client.jl:296
│ [24] _start() at ./client.jl:506
└ @ Requires ~/.julia/packages/Requires/7Ncym/src/require.jl:49
Are you manually loading MPICH_jll somewhere?
Maybe try using the most recent version of MPI.jl?
updating the most recent version created more issues…
How can I check whether I am manually loading MPICH_jll?
Is there any mention of MPICH_jll anywhere in the code?
No… I looked at all dependent packages.
My only idea is that one node is configured differently: are both nodes set up to use the same Pkg directory and Julia environment?