[ANN] MPI.jl 0.14 changes

I’ve just tagged MPI.jl 0.14: the major change in this release is that it will now use a BinaryBuilder-provided MPI binary (Microsoft MPI on Windows, MPICH on other platforms).

If you are running on a HPC system you will probably want to use the system-provided binary, see https://juliaparallel.github.io/MPI.jl/stable/configuration/ for details.

8 Likes

Trying to build MPI.jl against the system MPI via the instructions you linked above, I encounter the error:

[ Info: using system MPI
┌ Info: Using implementation
│   libmpi = "/glade/u/apps/ch/opt/mpt/2.22/lib/libmpi"
└   mpiexec_cmd = `/glade/u/apps/ch/opt/mpt/2.22/bin/mpiexec`
┌ Info: MPI implementation config
└   abi = "MPICH"
ERROR: MethodError: no method matching adjoint(::Nothing)
Closest candidates are:
  adjoint(::Missing) at missing.jl:100
  adjoint(::Number) at number.jl:169
  adjoint(::LinearAlgebra.Adjoint) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/LinearAlgebra/src/adjtrans.jl:164

Any thoughts on what might be happening here? I would really like to evaluate MPI.jl vs more traditional C++/Fortran + MPI on our HPC cluster, but so far I cannot get MPI.jl to build and use the IB network.

Is that the full error message? Does it give you a line number?

Is think that being difficult to build would be one of the main requirements of an MPI replacement. Otherwise would it even be the same thing?

That is the full error message. Is there a way to get more verbosity from the build process?

It looks like you have a single apostrophe (') inserted somewhere, which it is interpreting as an adjoint. After what you have above it should print a stacktrace. e.g. if I do:

julia> Pkg.build("MPI")' # incorrect apostrophe
   Building MPI → `~/src/MPI.jl/deps/build.log`
ERROR: MethodError: no method matching adjoint(::Nothing)
Closest candidates are:
  adjoint(::Missing) at missing.jl:100
  adjoint(::Number) at number.jl:169
  adjoint(::LinearAlgebra.Adjoint) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/LinearAlgebra/src/adjtrans.jl:164
  ...
Stacktrace:
 [1] top-level scope at REPL[4]:1

which tells me the error occurred in the REPL.

1 Like

Indeed! You are eagle-eyed, and I am a hubled copy/paster. Thanks for spotting that, and I’ll be on my way :wink:

1 Like