Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

one GAMESS-US easyblock to rule them all (combines #470 and #544) (WIP) #558

Merged
merged 24 commits into from Mar 5, 2015

Conversation

boegel
Copy link
Member

@boegel boegel commented Feb 14, 2015

This easyblock combines the ones in PR #470 by @pescobar and #544 by @scintimandrion, picking the best of both and combining it in one GAMESS-US easyblock to rule them all.

Need a bit more test before I consider this final.

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/780/
Test PASSed.

try:
for line in fileinput.input(rungms, inplace=1, backup='.orig'):
line = re.sub(r"^(\s*set\s*TARGET)=.*", r"\1=%s" % self.cfg['ddi_comm'], line)
line = re.sub(r"^(\s*set\s*GMSPATH)=.*", r"\1=%s" % self.installdir, line)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

…so patch in definiing ERICFMT and MCPPATH in rungms
@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/781/
Test PASSed.

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/782/
Test PASSed.

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/783/
Test PASSed.

@boegel
Copy link
Member Author

boegel commented Mar 1, 2015

@scintimandrion: ping w.r.t. to this PR and how it relates to yours?

@valtandor
Copy link
Contributor

I'll have a look at it, now that I'm back in the office.

@valtandor
Copy link
Contributor

Is there any chance of me being granted push access to this PR?

@boegel
Copy link
Member Author

boegel commented Mar 2, 2015

@scintimandrion: if you have any suggestions, just make an inline remarks (via https://github.com/hpcugent/easybuild-easyblocks/pull/558/files), or issue a PR to my branch boegel:one_gamess_us_to_rule_them_all

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/800/
Test PASSed.

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/801/
Test PASSed.

@boegel
Copy link
Member Author

boegel commented Mar 3, 2015

@wpoely86: care to give this a review, maybe even a test? I really want to get this in for EasyBuild v2.0

easyconfigs available at easybuilders/easybuild-easyconfigs#1153 and easybuilders/easybuild-easyconfigs#1406

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/802/
Test PASSed.

@@ -0,0 +1,275 @@
##
# Copyright 2009-2014 Ghent University
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2015

@boegel
Copy link
Member Author

boegel commented Mar 4, 2015

works like a charm for old/new GAMESS-US versions, when built with intel/2015a (see easybuilders/easybuild-easyconfigs#1406)

some care has been taken to also make it work on top of GCC/OpenMPI, but a patch to rungms is required to make rungms (used in the test_step) work on top of OpenMPI... (see also easybuilders/easybuild-easyconfigs#1153)

@pescobar: can you test easybuilders/easybuild-easyconfigs#1406?

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/817/
Test PASSed.

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/820/
Test PASSed.

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/821/
Test PASSed.

@pescobar
Copy link
Member

pescobar commented Mar 5, 2015

when trying to compile this with toolchain intel/2015.02 still uses gcc (this is the debug log)

Compiling DDI object: ddi_scatter_acc.o
gcc -DLINUX -m64 -O3 -fstrict-aliasing -I./ -I/opt/soft/apps/impi/5.0.3.048-iccifort-2015.2.164-GCC-4.9.2/include64 -DDDI_MPI -DUSE_SYSV -DMAX_SMP_PROCS=16 -DMAX_NODES=256 -o ddi_scatter_acc.o -c ddi_scatter_acc.c
endif
unset echo
Finished compiling: ddi_scatter_acc.o

Compiling FORTRAN wrappers for DDI
gcc -DLINUX -m64 -O3 -fstrict-aliasing -I./ -I/opt/soft/apps/impi/5.0.3.048-iccifort-2015.2.164-GCC-4.9.2/include64 -DDDI_MPI -DUSE_SYSV -DMAX_SMP_PROCS=16 -DMAX_NODES=256 -DINT_SIZE=long -D_UNDERSCORES=1 -o ddi_fortran.o -c ddi_fortran.c
unset echo
Finished compiling: ddi_fortran.o

Also during the testing phase it asks for my ssh key????? This is what I get in the log file

== 2015-03-05 13:44:41,422 main.run DEBUG run_cmd: running cmd TMPDIR=/tmp/easybuild-JVe_h_/tmpQkJo7T I_MPI_FALLBACK=enable /home/urz/pub/.local/easybuild/software/GAMESS-US/20130501-R1-intel-2015.02/rungms exam01 20130501-R1 1 2 (in /tmp/easybuild-JVe_h_/tmpQkJo7T)
pub@maia password:

This is the content of script rungms which tries to run some mpi code and asks for the ssh key
https://gist.github.com/78be40a7620fce7ebaf0

@boegel
Copy link
Member Author

boegel commented Mar 5, 2015

@pescobar: it's normal that's it's using gcc for some things, e.g. compiling the DDI part:

$ sed -n "685,686p" ddi/compddi 
#       Note that in all cases, we use the gcc compiler from GNU for
#       the compilation of DDI, even if a non-GNU FORTRAN is used.

I'm not sure how we can get around the issue that rungms is assuming that your SSH setup is such that you can SSH to the host you're on... You can always skip the tests using runtest = False in the easyconfig file...

…_HYDRA_BOOTSTRAP to 'fork' to avoid use of SSH
@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/822/
Test PASSed.

@boegel
Copy link
Member Author

boegel commented Mar 5, 2015

@pescobar: the issue you reported with the SSH password being prompted for should be fixed, I'm now setting $I_MPI_HYDRA_BOOTSTRAP=fork for the tests (the default is ssh)

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/823/
Test PASSed.

@boegel
Copy link
Member Author

boegel commented Mar 5, 2015

Tests with two versions of GAMESS-US and intel/2015a work on two different platforms (Debian and SL6), see easybuilders/easybuild-easyconfigs#1406, so good to go.

Building with goolf toolchain also works, but tests need to be skipped since rungms doesn't support OpenMPI (yet), see easybuilders/easybuild-easyconfigs#1153.

Going in, thanks for all the effort @scintimandrion and @pescobar, thanks for reviewing/testing @wpoely86!

boegel added a commit that referenced this pull request Mar 5, 2015
one GAMESS-US easyblock to rule them all (combines #470 and #544) (WIP)
@boegel boegel merged commit 0433ce4 into easybuilders:develop Mar 5, 2015
@boegel boegel deleted the one_gamess_us_to_rule_them_all branch March 5, 2015 20:08
@valtandor
Copy link
Contributor

Trying to build GAMESS-US 20130501-R1 with the ictce-5.4.0 toolchain gives this error:

== 2015-03-30 14:56:12,927 main.easyblock WARNING build failed (first 300 chars): EasyBuild crashed with an error (at easybuild/tools/run.py:332 in run_cmd_qa): run_cmd_qa: cmd  ./config  : Max nohits 50 reached: end of output tains one or more version number,
enter the specific version you prefer, giving all decimals.
b) If the above output contains paths like 'bin' and 'lib',
e

I guess this is because the output of GAMESS-US' config script is very verbose between questions?

@boegel
Copy link
Member Author

boegel commented Mar 30, 2015

That may indeed be the problem (e.g., things taking longer than on our end due to a slow filesystem), or for some reason a question is being generated that eb can't figure out how to solve...

Can you provide a full debug log for this? The error message you've pasted doesn't provide all information to really tell what's going on.

@valtandor
Copy link
Contributor

I was able to resolve it by changing maxHitCount:

--- a/easybuild/tools/run.py
+++ b/easybuild/tools/run.py
@@ -251,7 +251,7 @@ def run_cmd_qa(cmd, qa, no_qa=None, log_ok=True, log_all=False, simple=False, re
     else:
         runLog = None

-    maxHitCount = 50
+    maxHitCount = 500

     try:
         p = Popen(cmd, shell=True, stdout=PIPE, stderr=STDOUT, stdin=PIPE, close_fds=True, executable="/bin/bash")

The other error I'm grappling with is a whole pile of segmentation faults. Still trying to chase that one down.

@valtandor
Copy link
Contributor

Further to my previous comment, it seems that if I run a test through Easybuild, I get a segmentation fault, while if I run the same command on the command line on the same host, no segfault. I'm still trying to get to the bottom of the problem, but if you have any experience and tips to share where such things have happened before, I'd greatly appreciate some advice.

@valtandor
Copy link
Contributor

Apparently, this is related to the interplay between EasyBuild and our scheduler (SLURM). There may be workarounds at this end.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants