Opened 11 months ago
Closed 9 months ago
#154 closed plantage / defect (fixed)
Plantage dans mpi_init_thread sur spirit avec gfortran
Reported by: | lguez | Owned by: | Laurent Fairhead |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | LMDZ | Keywords: | |
Cc: |
Description (last modified by )
Sur spirit, avec gfortran, version 9, 11 ou 13, parallélisation MPI-OpenMP, gcm plante très bizarrement dans mpi_init_thread. Pour reproduire le problème, par exemple avec gfortran 9 :
module purge wget http://lmdz.lmd.jussieu.fr/pub/install_lmdz.sh chmod +x install_lmdz.sh ./install_lmdz.sh -netcdf 0 -parallel mpi_omp -v 20231022.trunk
donne "segmentation fault", et cette erreur vient de la procédure Init_mpi, à la ligne :
CALL MPI_INIT_THREAD(thread_required,thread_provided,ierr)
L'erreur disparaît avec l'option -rad oldrad d'install_lmdz.sh.
Change History (5)
comment:1 Changed 10 months ago by
Description: | modified (diff) |
---|
comment:2 Changed 10 months ago by
Description: | modified (diff) |
---|
comment:3 Changed 10 months ago by
Description: | modified (diff) |
---|
comment:4 Changed 9 months ago by
comment:5 Changed 9 months ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
Il faut mettre ulimit -Ss à autre chose que unlimited. Par exemple 8192.
"The OMP_STACKSIZE environment variable controls the size of the stack for threads created by the OpenMP implementation [...]. The environment variable does not control the size of the stack for an initial thread."
La taille du stack du "thread initial" est la valeur donnée à "ulimit -Ss" si cette valeur est autre que unlimited. Si "ulimit -Ss" vaut unlimited alors la taille du stack du "thread initial" a une valeur par défaut qui dépend de l'architecture. La valeur par défaut est de seulement 2 MiB sur x86_64. Cf. :
man 3 pthread_create