gms-bbg / gamess-issues

GAMESS issue tracking
7 stars 1 forks source link

Two small bug fixes in the openmp part (release 2019-06-30 R1) #8

Closed ivr900 closed 5 years ago

ivr900 commented 5 years ago

Two small bug fixes are reported here in part of the OpenMP GAMESS build 2019-06-30 R1. Relevant to all compiler environments.

  1. Small fix in file source/ompgrd2.src to remove overlap in the parameter definition caused by introduction 'efp_module.src'. Line 1058 must be changed as - mxatm, mxgrid, mxfrg, mxdppt + mxatm, mxgrid

  2. Small fix in Makefile to make the base modules created before the OpenMP modules section, where efm_module.mod (one of the base modules) it is already required. Line 59 must be changed as - MODULES := $(shell sed -n '/openmp-start-section/,/openmp-end-section/p' $(COMPALL) | grep ".\/comp" | awk '{printf "%s ",$$2}') $(MODULES) + MODULES := $(MODULES) $(shell sed -n '/openmp-start-section/,/openmp-end-section/p' $(COMPALL) | grep ".\/comp" | awk '{printf "%s ",$$2}')

saromleang commented 5 years ago

Thank you for bringing this to our attention.

We discovered the same issue in 1. after making the public release. The solution we took is the following around line 1062: - USE comm_FRGINF + USE comm_FRGINF, ONLY: nfrg

ivr900 commented 5 years ago

Hi Sarom,

also I noticed that the version printout in gamess.src has not been updated. This potentially may confuse users.

Best regards, Ivan

saromleang commented 5 years ago

Thanks for catching that!
The version printout should be updated now.

saromleang commented 5 years ago

Issue has been resolved with the latest patched released of GAMESS.

We did not make any changes with the build system.

Please use:

make ddi
make modules
make -j $(nproc)
ivr900 commented 5 years ago

Sarom,

the second bug (see the top post) has not been fixed in the latest patch 1 of 2019-06-30 Release. Compiling of ompgrd2.src must be after compiling of efpmodule.src, as the former uses the module comm_FRGINF from the latter. If using the make procedure, it can be done as I suggested in the top post.

Best regards, Ivan

saromleang commented 5 years ago

Can you detail how you are compiling GAMESS.

We do not have any problems using the approach that we prescribed for compiling GAMESS.

make ddi
make modules
make -j $(nproc)
ivr900 commented 5 years ago

Sarom, I follow the same procedure

config
make ddi

is fine. But 'make modules' stucks, if unmodifed 'Makefile.in' is used, giving:

gfortran -c -fdefault-integer-8 -g -O0 -fbacktrace -fopenmp -march=armv8-a -ffree-line-length-none -w -fno-aggressive-loop-optimizations ompgrd2.F90
ompgrd2.F90:1062.10:

      USE comm_FRGINF, ONLY: nfrg
          1
Fatal Error: Can't open module file 'comm_frginf.mod' for reading at (1): No such file or directory

The module comm_FRGINF is located in source code file 'efpmodule.src', which as diagnostic above shows, must be compiled before 'ompgrd2.src'.

Ivan

ivr900 commented 5 years ago

This is relevant to the case when we specify

setenv GMS_OPENMP          true

in 'install.info'. For the alternative choice it is irrelevant, as the OMP source codes are not compiled.

saromleang commented 5 years ago

I must have overlooked the fact that you were building threaded GAMESS. We will have a look into this. Thanks.

colleeneb commented 5 years ago

It looks like this was fixed in the "GAMESS patched release 2019 R1 Patch 1" commit to master. ./comp efpmodule wad added after line 304 in compall, which ensures that it's compiled before ompgrd2.

ivr900 commented 5 years ago

It looks like this was fixed in the "GAMESS patched release 2019 R1 Patch 1" commit to master. ./comp efpmodule wad added after line 304 in compall, which ensures that it's compiled before ompgrd2.

Sorry, overlooked this line. :( Still, I see more logic to compile the optional OMP source codes after the general GAMESS source code modules, so not to have the line ./comp efpmodule repeated twice.

colleeneb commented 5 years ago

You're right, it's good to avoid unnecessary repetition, and anything that simplifies the build is good. Will have to think about it. It looks like prec, mx_limits, efpmodule, and mod_nosp_basis are all listed twice.