mdrun crashes with segmentation fault if started with more than 32 OpenMP threads. - Redmine #2085
Archive from user: Jiri Kraus
I build GROMACS 2016.1 with CUDA 8 and GCC 5.4.0 using the following configure command:
CC=gcc CXX=g++ cmake ../gromacs-2016.1 -DGMX_GPU=ON -DGMX_BUILD_OWN_FFTW=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=...
With more than 32 OpenMP threads mdrun crashes on water/0000.96:
gmx mdrun -pin on -ntmpi 1 -ntomp 33 -nb gpu -noconfout -resethway -v -maxh 0.08333 -nsteps 100000 [0000.96]$ gmx mdrun -pin on -ntmpi 1 -ntomp 33 -nb gpu -noconfout -resethway -v -maxh 0.08333 -nsteps 100000 :-) GROMACS - gmx mdrun, 2016.1 (-: [...] snip starting mdrun 'Water' 100000 steps, 200.0 ps. Segmentation fault
With 32 threads it runs:
[0000.96]$ gmx mdrun -pin on -ntmpi 1 -ntomp 32 -nb gpu -noconfout -resethway -v -maxh 0.08333 -nsteps 100000 :-) GROMACS - gmx mdrun, 2016.1 (-: [...] snip Core t (s) Wall t (s) (%) Time: 437.159 13.661 3200.0 (ns/day) (hour/ns) Performance: 632.459 0.038 GROMACS reminds you: "Hangout In the Suburbs If You've Got the Guts" (Urban Dance Squad) [0000.96]$
Even it if does not make sense to use that many OpenMP threads mdrun should not crash.
(from redmine: issue id 2085, created on 2016-11-30 by gmxdefault, closed on 2017-01-20)
- Revision c0a90b8b by Berk Hess on 2016-12-14T13:14:14Z:
Add bonded #thread runtime check Replaced a debug assertion on the number of OpenMP threads not being larger than GMX_OPENMP_MAX_THREADS by fatal error. But since the listed forces reduction is actually not required with listed forces, these are now conditional and mdrun can run with more than GMX_OPENMP_MAX_THREADS threads. Fixes #2085. Change-Id: I7a6049d727924cd0b4df10a3525f9e7aec49c3dc