SmileiPIC / Smilei

Particle-in-cell code for plasma simulation
https://smileipic.github.io/Smilei
344 stars 120 forks source link

OpenMP task parallelization not activated on TGCC Irene Rome #767

Closed hwlr0 closed 1 week ago

hwlr0 commented 1 week ago

Hello!

I noticed that when running Smilei on TGCC's Irene cluster and Rome partition (I haven't tried on other partitions of this cluster) (machine=joliot_curie_rome for compilation), in the Initializing MPI part of Smilei's log, this prints:

OpenMP task parallelization not activated

My colleagues at CELIA laboratory running Smilei on the same partition have the same print. I tried recompiling Smilei differently by removing config=no_mpi_tm from the make command. This enables MPI threads but OpenMP task parallelization remains not activated. Forcing a compiler option by setting export MPICXX='mpicxx -fopenmp' had no effect. Setting export OMP_PROC_BIND=true and export OMP_PLACES=cores had no effect either.

Thus, I have three questions for you please:

Question 1: I don't know how are MPI threads related to OpenMP. The machine file recommends not enabling the former for some reason. But I could compile the code successfully when removing config=no_mpi_tm. The instruction to add this option being 3 years old, maybe it is just no longer necessary? Is it even possible for OpenMP tasks to be effective when MPI threads are not enabled?

Question 2: At CELIA, we are also wondering how things work when we have multiple threads per mpi process (64 in my case) but OpenMP is not activated. Indeed, using several MPI threads still seems to run the code faster compared to using only one, despite the non-activation of OpenMP task parallelization.

Question 3: Last but not least, do you have any hint how to solve this issue and enable OpenMP please?

Additionnal infos:

Unloading datadir/own ERROR: Dependent dfldatadir/own is loaded

Unloading datadir/celia ERROR: Dependent datadir/own and dfldatadir/own are loaded

Unloading ccc/1.0 ERROR: Dependent datadir/celia and datadir/own and dfldatadir/own are loaded

Thanks for helping! Howel