[gmx-users] is NOASSEMBLYLOOPS broken?

francesco oteri francesco.oteri at gmail.com
Fri Jul 20 15:32:10 CEST 2012


Dear gromacs users (and eventually developers too),
I am trying to debug gromacs and on the gromacs website
http://www.gromacs.org/Developer_Zone/Programming_Guide/Programmer's_Guide#local_index

It is stated:

"gromacs can be forced to use non assembly routines to do force
calculations (easier to debug) by defining "NOASSEMBLYLOOPS=1" as
environment variable (e.g. put "export NOASSEMBLYLOOPS=1" without the
quotes in your /etc/profile)"

I tried to use this approach, but it doesn't work since gdb goes
inside the assembly loop.

Moreover, in order to check spelling errors I got each getenv call:

grep -R getenv  `find -name *.c`


./src/kernel/fflibutil.c:        lib = getenv("GMXLIB");
./src/kernel/runner.c:        if ((env = getenv("GMX_MAX_THREADS")) != NULL)
./src/kernel/runner.c:
getenv("GMXGHAT"),inputrec, (Flags & MD_REPRODUCIBLE));
./src/kernel/readir.c:  if (getenv("GALACTIC_DYNAMICS") == NULL) {
./src/kernel/pdb2gmx.c:    bFFRTPTERRNM =
(getenv("GMX_NO_FFRTP_TER_RENAME") == NULL);
./src/kernel/do_gct.c:    if ((buf = getenv("DISTGCT")) == NULL)
./src/kernel/md.c:        if (getenv("GMX_FORCE_UPDATE"))
./src/ngmx/logo.c:  if ((newcol=getenv("LOGO"))!=NULL)
./src/ngmx/x11.c:  fontname=getenv("GMXFONT");
./src/ngmx/x11.c:  display=getenv("DISPLAY");
./src/contrib/do_multiprot.c:    if ((mptr=getenv("MULTIPROT")) == NULL) {
./src/contrib/do_shift.c:  if ((dptr=getenv("TOTAL")) == NULL)
./src/gmxlib/tpxio.c:            env = getenv("GMX_NOCHARGEGROUPS");
./src/gmxlib/checkpoint.c:        if
(getenv(GMX_IGNORE_FSYNC_FAILURE_ENV)==NULL)
./src/gmxlib/checkpoint.c:            if
(getenv("GMX_ALLOW_CPT_MISMATCH") == NULL)
./src/gmxlib/statutil.c:        select = getenv("GMXTIMEUNIT");
./src/gmxlib/statutil.c:    select = getenv("GMX_VIEW_XVG");
./src/gmxlib/statutil.c:    envstr = getenv("GMXNPRIALL");
./src/gmxlib/statutil.c:        envstr = getenv("GMXNPRI");
./src/gmxlib/mtop_util.c:    env = getenv("GMX_MAXRESRENUM");
./src/gmxlib/disre.c:    ptr = getenv("GMX_DISRE_ENSEMBLE_SIZE");
./src/gmxlib/viewit.c:    if (getenv("DISPLAY") == NULL) {
./src/gmxlib/viewit.c:	if ( ! (cmd=getenv(env)) ) {
./src/gmxlib/viewit.c:	  if ( getenv("XMGR") )
./src/gmxlib/viewit.c:	if ( ! (cmd=getenv(env)) )
./src/gmxlib/enxio.c:    if (getenv("GMX_ENX_NO_FATAL") != NULL)
./src/gmxlib/main.c:    if (getenv(GMX_CHECK_MPI_ENV) == NULL)
./src/gmxlib/network.c:  if (getenv("GMX_NO_NODECOMM") == NULL) {
./src/gmxlib/gmx_fatal.c:        if ((temp=getenv("WHERE")) != NULL)
./src/gmxlib/futil.c:        env = getenv("GMX_MAXBACKUP");
./src/gmxlib/futil.c:        if (bUnbuffered ||
((bufsize=getenv("LOG_BUFS")) != NULL)) {
./src/gmxlib/futil.c:            if (!found && (s=getenv("PATH")) != NULL)
./src/gmxlib/futil.c:    lib=getenv("GMXLIB");
./src/gmxlib/copyrite.c:  return (getenv("GMX_NO_QUOTES") == NULL);
./src/gmxlib/vmdio.c:    pathenv = getenv("VMD_PLUGIN_PATH");
./src/gmxlib/txtdump.c:  if (getenv("LONGFORMAT") != NULL)
./src/gmxlib/sighandler.c:    if (getenv("GMX_NO_TERM") == NULL)
./src/gmxlib/sighandler.c:    if (getenv("GMX_NO_INT") == NULL)
./src/gmxlib/sighandler.c:    if (getenv("GMX_NO_USR1") == NULL)
./src/gmxlib/nonbonded/nonbonded.c:
if(getenv("GMX_NOOPTIMIZEDKERNELS") != NULL)
./src/mdlib/shellfc.c:  shfc->bPredict   = (getenv("GMX_NOPREDICT") == NULL);
./src/mdlib/shellfc.c:    shfc->bForceInit = (getenv("GMX_FORCEINIT") != NULL);
./src/mdlib/qm_orca.c: buf = getenv("BASENAME");
./src/mdlib/qm_orca.c: buf = getenv("ORCA_PATH");
./src/mdlib/ns.c:   fr->ns.bCGlist = (getenv("GMX_NBLISTCG") != 0);
./src/mdlib/ns.c:        char *ptr=getenv("GMX_DUMP_NL");
./src/mdlib/tpi.c:    ptr = getenv("GMX_TPIC_MASSES");
./src/mdlib/tpi.c:  dump_pdb = getenv("GMX_TPI_DUMP");
./src/mdlib/forcerec.c:    if (getenv("GMX_NO_SOLV_OPT"))
./src/mdlib/forcerec.c:         getenv("GMX_NO_ALLVSALL") == NULL
./src/mdlib/forcerec.c:    env = getenv("GMX_SCSIGMA_MIN");
./src/mdlib/forcerec.c:    if (getenv("GMX_NB_GENERIC") != NULL)
./src/mdlib/forcerec.c:    fr->UseOptimizedKernels =
(getenv("GMX_NOOPTIMIZEDKERNELS") == NULL);
./src/mdlib/forcerec.c:    if (getenv("GMX_FORCE_TABLES"))
./src/mdlib/qm_gaussian.c:    buf = getenv("NCPUS");
./src/mdlib/qm_gaussian.c:    buf = getenv("MEM");
./src/mdlib/qm_gaussian.c:    buf = getenv("ACC");
./src/mdlib/qm_gaussian.c:    buf = getenv("CPMCSCF");
./src/mdlib/qm_gaussian.c:    buf = getenv("SASTEP");
./src/mdlib/qm_gaussian.c:    buf = getenv("GAUSS_DIR");
./src/mdlib/qm_gaussian.c:    buf = getenv("GAUSS_EXE");
./src/mdlib/qm_gaussian.c:    buf = getenv("DEVEL_DIR");
./src/mdlib/qm_gaussian.c:   * environment using getenv().
./src/mdlib/qm_gaussian.c:    buf = getenv("STATE");
./src/mdlib/constr.c:  char *env=getenv("GMX_SUPPRESS_DUMP");
./src/mdlib/constr.c:    env = getenv("GMX_MAXCONSTRWARN");
./src/mdlib/gmx_wallcycle.c:    if (PAR(cr) &&
getenv("GMX_CYCLE_BARRIER") != NULL)
./src/mdlib/gmx_wallcycle.c:    if (getenv("GMX_CYCLE_ALL") != NULL)
./src/mdlib/nsgrid.c:    ptr = getenv("GMX_NSCELL_NCG");
./src/mdlib/mdebin.c:        md->bConstrVir =
(getenv("GMX_CONSTRAINTVIR") != NULL);
./src/mdlib/mdebin.c:            md->bEner[i] =  (EI_DYNAMICS(ir->eI)
&& getenv("GMX_VIRIAL_TEMPERATURE"));
./src/mdlib/mdebin.c:    bNoseHoover =
(getenv("GMX_NOSEHOOVER_CHAINS") != NULL); /* whether to print
Nose-Hoover chains */
./src/mdlib/mdebin.c:        bNoseHoover =
(getenv("GMX_NOSEHOOVER_CHAINS") != NULL);
./src/mdlib/pull.c:    if (getenv("GMX_NO_PULLVIR") != NULL)
./src/mdlib/partdec.c:  cap_env = getenv("GMX_CAPACITY");
./src/mdlib/domdec.c:    CartReorder = (getenv("GMX_NO_CART_REORDER") == NULL);
./src/mdlib/domdec.c:    val = getenv(env_var);
./src/mdlib/domdec.c:    if (getenv("GMX_DD_ORDER_ZYX") != NULL)
./src/mdlib/domdec.c:            getenv("GMX_PMEONEDD") == NULL)
./src/tools/gmx_tune_pme.c:        if ( (cp = getenv("MPIRUN")) != NULL)
./src/tools/gmx_tune_pme.c:    if ( (cp = getenv("MDRUN" )) != NULL )
./src/tools/gmx_eneconv.c:  if ((getenv("VERBOSE")) != NULL)
./src/tools/do_dssp.c:  if ((dptr=getenv("DSSP")) == NULL)
./src/tools/gmx_cluster.c:  if (getenv("TESTMC")) {
./src/tools/gmx_dipoles.c:    if ((ptr = getenv("GKRWIDTH")) != NULL) {
./src/tools/gmx_membed.c:        if (getenv("GMX_FORCE_UPDATE"))
./src/tools/gmx_membed.c:
getenv("GMXGHAT"),inputrec, (Flags & MD_REPRODUCIBLE));
./src/tools/gmx_energy.c:  if ((getenv("VERBOSE")) != NULL)
./src/tools/gmx_energy.c:  if ((getenv("VERBOSE")) != NULL)
./src/tools/gmx_wham.c:        if(!(Path=getenv("GMX_PATH_GZIP")))

Interestingly, NOASSEMBLYLOOPS it is never checkd but the variable
GMX_NOOPTIMIZEDKERNELS seems to have the same meaning.
Is this an undocumented changement?

What about the documentation of the internal environment variable in
gromacs discussed in
http://lists.gromacs.org/pipermail/gmx-developers/2012-March/005714.html
?


Francesco



More information about the gromacs.org_gmx-users mailing list