-
Notifications
You must be signed in to change notification settings - Fork 15
Home
-
Up to my knowledge (@amartinhuertas), at present, the unique way of "debugging"
MPI.jl
parallel programs is "print statement debugging". We have observed that messages printed to stdout usingprintln
by the different Julia REPLs running at different MPI tasks are not atomic, but broken/intermixed stochastically. However, if you doprint("something\n")
you are more likely to get it to print to a single line thanprintln("something")
(Thanks to @symonbyrne for this trick, it is so useful). More serious/definitive solutions are being discussed in this issue ofMPI.jl
. -
Some people have used
tmpi
(https://github.com/Azrael3000/tmpi) for running multiple sessions interactively, and we could try using the@mpi_do
macro inMPIClusterManagers
(I have not explored neither of them). If am not wrong, I guess that the first alternative may involve multiplegdb
debuggers running at different terminal windows, and a deep knownledge of the low-level C code generated byJulia
(see https://docs.julialang.org/en/v1/devdocs/debuggingtips/ for more details). I wonder whether, e.g., https://github.com/JuliaDebug/Debugger.jl, could be combined withtmpi
. -
For reducing JIT lag it becomes absolutely mandatory to build a custom system image of (some of) the
GridapDistributed.jl
dependencies, e.g.,Gridap.jl
. See the following link for more details. https://github.com/gridap/Gridap.jl/tree/julia_script_creation_system_custom_images/compile. TO BE UPDATED WHEN BRANCHjulia_script_creation_system_custom_images
is merged intomaster
. Assuming that the name of theGridap.jl
image is calledGridapv0.10.4.so
, then one may call the parallel MPI.jl program as:mpirun -np 4 julia -J ./Gridapv0.10.4.so --project=. test/MPIPETScDistributedPoissonTests.jl