JuliaParallel / JuliaParallel/MPI.jl
MPI.jl with cray-mpich on the Cray XC50 is not running
- Dominant language
- Julia
- Stars
- 439
- Forks
- 127
- Avg merge
- 19h 6m
- Merged PRs (30d)
- 17
Description
The admin has installed the JULIA with the Modules on the system directory of the Cray XC50.
```
$ /opt/prg/.src/julia/julia-1.7.3-full.gnu> cat Make.user
prefix=/opt/prg/julia/1.7.3/GNU/73
$ /opt/prg/.src/julia/julia-1.7.3-full.gnu> cat conf.gnu
module swap PrgEnv-cray PrgEnv-gnu
module load PrgEnv-gnu
module load cmake
make -C deps -j 20 USE_BINARYBUILDER=0
make
make install
```
And then, I have been trying to set the MPI.jl on my account but MPI.jl gets me errors as follows.
Could I get some clue about the problem?
```
user1@login:~:> module list
Currently Loaded Modulefiles:
1) modules/3.2.11.1 13) dmapp/7.1.1-6.0.7.0_34.3__g5a674e0.ari
2) eproxy/2.0.22-6.0.7.0_37.1__g1ebe45c.ari 14) gni-headers/5.0.12.0-6.0.7.0_24.1__g3b1768f.ari
3) gcc/7.3.0 15) xpmem/2.2.15-6.0.7.1_5.7__g7549d06.ari
4) craype-network-aries 16) job/2.2.3-6.0.7.0_44.1__g6c4e934.ari
5) craype-x86-skylake 17) dvs/2.7_2.2.112-6.0.7.1_6.1__ge96a422
6) craype/2.5.15 18) alps/6.6.43-6.0.7.0_26.4__ga796da3.ari
7) cray-mpich/7.7.3 19) rca/2.2.18-6.0.7.0_33.3__g2aa4f39.ari
8) pbs/default 20) atp/2.1.3
9) cray-lprgci/18.07.1 21) perftools-base/7.0.4
10) udreg/2.3.2-6.0.7.0_33.18__g5196236.ari 22) PrgEnv-gnu/6.0.4
11) ugni/6.0.14.0-6.0.7.0_23.1__gea11d3d.ari 23) julia/1.7.3
12) pmi/5.0.14
user1@login:~:>
user1@login:~:>
user1@login:~:> export JULIA_MPI_PATH=$CRAY_MPICH_DIR
user1@login:~:>
user1@login:~:> echo $JULIA_MPI_PATH
/opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1
user1@login:~:>
user1@login:~:> julia --project -e 'import Pkg; Pkg.add("MPI")'
user1@login:~:> julia --project -e 'ENV["JULIA_MPI_BINARY"]="system"; using Pkg; Pkg.build("MPI"; verbose=true)'
Building MPI → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/d56a80d8cf8b9dc3050116346b3d83432b1912c0/build.log`
Progress [> ] 0/1
[ Info: using system MPI
┌ Info: Using implementation
│ libmpi = "/opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib/libmpich"
│ mpiexec_cmd = `/opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/bin/mpiexec`
└ MPI_LIBRARY_VERSION_STRING = "MPI VERSION : CRAY MPICH version 7.7.3 (ANL base 3.2)\nMPI BUILD INFO : Built Wed Aug 22 15:44:54 2018 (git hash b88a4a20c) MT-G\n"
┌ Info: MPI implementation detected
│ impl = CrayMPICH::MPIImpl = 7
│ version = v"7.7.3"
└ abi = "MPICH"
Precompiling project...
13 dependencies successfully precompiled in 4 seconds
user1@login:~:> julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.7.3 (2022-05-06)
_/ |\__'_|_|_|\__'_| |
|__/ |
julia> using MPI
julia> MPI.Init()
[Mon Jul 11 16:22:54 2022] [unknown] Fatal error in PMPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(537):
MPID_Init(246).......: channel initialization failed
MPID_Init(638).......: PMI2 init failed: 1
signal (6): Aborted
in expression starting at REPL[2]:1
gsignal at /lib64/libc.so.6 (unknown line)
abort at /lib64/libc.so.6 (unknown line)
MPID_Abort at /opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib/libmpich.so (unknown line)
MPIR_Handle_fatal_error at /opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib/libmpich.so (unknown line)
MPIR_Err_return_comm at /opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib/libmpich.so (unknown line)
MPI_Init_thread at /opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib/libmpich.so (unknown line)
_init_thread at /home/user1/.julia/packages/MPI/08SPr/src/environment.jl:156 [inlined]
#Init#32 at /home/user1/.julia/packages/MPI/08SPr/src/environment.jl:94
Init at /home/user1/.julia/packages/MPI/08SPr/src/environment.jl:82
unknown function (ip: 0x7f5ded4ab89e)
_jl_invoke at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2247 [inlined]
jl_apply_generic at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2429
jl_apply at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/julia.h:1788 [inlined]
do_call at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/interpreter.c:126
eval_value at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/interpreter.c:215
eval_stmt_value at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/interpreter.c:166 [inlined]
eval_body at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/interpreter.c:587
jl_interpret_toplevel_thunk at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/interpreter.c:731
jl_toplevel_eval_flex at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/toplevel.c:885
jl_toplevel_eval_flex at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/toplevel.c:830
jl_toplevel_eval_in at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
eval_user_input at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:150
repl_backend_loop at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:246
start_repl_backend at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:231
#run_repl#47 at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:364
run_repl at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:351
_jl_invoke at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2247 [inlined]
jl_apply_generic at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2429
#936 at ./client.jl:394
jfptr_YY.936_30555 at /mnt/lustre/opt/prg/julia/1.7.3/GNU/73/lib/julia/sys.so (unknown line)
_jl_invoke at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2247 [inlined]
jl_apply_generic at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2429
jl_apply at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/julia.h:1788 [inlined]
jl_f__call_latest at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/builtins.c:757
#invokelatest#2 at ./essentials.jl:716 [inlined]
invokelatest at ./essentials.jl:714 [inlined]
run_main_repl at ./client.jl:379
exec_options at ./client.jl:309
_start at ./client.jl:495
jfptr__start_22092 at /mnt/lustre/opt/prg/julia/1.7.3/GNU/73/lib/julia/sys.so (unknown line)
_jl_invoke at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2247 [inlined]
jl_apply_generic at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/gf.c:2429
jl_apply at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/julia.h:1788 [inlined]
true_main at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/jlapi.c:559
jl_repl_entrypoint at /mnt/lustre/opt/prg/.src/julia/julia-1.7.3.gnu/src/jlapi.c:701
main at julia (unknown line)
__libc_start_main at /lib64/libc.so.6 (unknown line)
_start at julia (unknown line)
Allocations: 2722 (Pool: 2710; Big: 12); GC: 0
Aborted
user1@login:~:>
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the failure with the documented Cray module list, JULIA_MPI_PATH, JULIA_MPI_BINARY, and `MPI.Init()`. Read `src/environment.jl` around line 156 and compare the behavior when launched through the reported environment; done means MPI initialization succeeds on the Cray XC50 without the PMI2 error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- hpc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100