Recent Changes to commrec.h break FAHcore
I've been regularly re-building FAH cores based on the gromacs git, so that we can have a working FAH core based on the shiny 4.5 release. However, some very recent changes have broken the current threading model in FAH-only code.
These changes lead to the following build error:
5>Y:\fah_windows_build\gromacs-aug1\src\kernel\md.c(2125): error: struct "<unnamed>" has no field "nthreads"
5> int nthreads=(cr->nthreads==0 ? 1 : cr->nthreads);
The problem is that the recent changes to commrec.h have removed the nthreads variable from the t_commrec struct. The changes occurred a few days ago:
4 days ago Berk commented out nthreads and threadid in t_commrec to... blob | commitdiff
I'll try to figure out a workaround. I guess the main issue on my end is figuring out how the new code is supposed to work. For now, I just wanted to bring this to your attention. I suspect that keeping FAH-gromacs code compliant with the rest of gromacs is now (partly or fully) my responsibility, so I'll look into this further.
#1 Updated by Erik Lindahl over 9 years ago
Those variables were killed to remove confusion. The current domain decomposition threading works by using Sander's thread-based MPI wrapper, so the commrec considers each thread a 'node' (or, think: decomposition volume part), while the old variables referred to multiple threads working on the same volume.