Opened 3 months ago

Closed 7 weeks 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 lguez)

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 2 months ago by lguez

Description: modified (diff)

comment:2 Changed 2 months ago by lguez

Description: modified (diff)

comment:3 Changed 2 months ago by lguez

Description: modified (diff)

comment:4 Changed 7 weeks ago by lguez

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

comment:5 Changed 7 weeks ago by lguez

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.