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
Easyblock for PGI compilers #658
Conversation
Automatic reply from Jenkins: Can I test this? |
@@ -0,0 +1,94 @@ | |||
## | |||
# Copyright 2015 Bart Oldeman |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
usually, copyright on contributions is transferred to Ghent University
if you'd like to retain copyright on this yourself, please read https://github.com/hpcugent/easybuild-easyblocks/blob/master/CONTRIBUTING.md and modify this bit accordingly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh, and use 2015-2015
(to allow easy updating in 2016)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it ok to use the same header as used in easyblocks/c/clang.py? (as far as I can see in CONTRIBUTING.md this is ok)
# This file is triple-licensed under GPLv2 (see below), MIT, and
# BSD three-clause licenses.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that works too. If it's licensed under MIT/BSD, we have the freedom of either relicensing it at GPLv2, or to relicense everything 'down' to BSD if we ever wanted to (cfr. easybuilders/easybuild-framework#335), which is the whole point of these requirements.
Jenkins: ok to test |
Refer to this link for build results (access rights to CI server needed): This pull request is now ready for review/testing. Please try and find someone who can tackle this; contact @boegel if you're not sure what to do. |
@bartoldeman: thanks a lot for this, I know several people have interest in seeing PGI support added to EasyBuild, and being able to install PGI with EasyBuild is the first step to make this happen The easyblock is pretty OK overall, just a couple of suggestions (see other comments). Let me know if you have any questions or concerns related to them. We currently don't have access to PGI, which is an issue w.r.t. to testing this PR (and future ones that require PGI, e.g. easyconfigs using a PGI toolchain). We've talked to PGI in the past about getting our hands on some kind of free license with limited capabilities, and it sounded like that was a viable option. I need to look into that again... |
Refer to this link for build results (access rights to CI server needed): This pull request is now ready for review/testing. Please try and find someone who can tackle this; contact @boegel if you're not sure what to do. |
Thanks for all the comments. I have incorporated them except the change from EB_pgi to EB_PGI. The compiler itself ships with a sample modulefile named "pgi/15.7", so people are used to loading modulefiles for this compiler with the non-capitalized pgi. A pgi easyconfig then looks for EB_pgi, much like icc looks for EB_icc; EB_PGI is not found (unless I overlooked something?). |
Refer to this link for build results (access rights to CI server needed): This pull request is now ready for review/testing. Please try and find someone who can tackle this; contact @boegel if you're not sure what to do. |
from easybuild.tools.build_log import EasyBuildError | ||
from easybuild.tools.run import run_cmd | ||
|
||
class EB_pgi(EasyBlock): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be EB_PGI
?
'PGI_INSTALL_DIR': self.installdir, | ||
'PGI_INSTALL_JAVA': 'true', | ||
'PGI_INSTALL_MANAGED': 'true', | ||
'PGI_INSTALL_NVIDIA': 'true', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't these be better custom easyconfig parameters to allow sites to tweak their setup easily?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1620/console for more details). This pull request is now ready for review/testing. Please try and find someone who can tackle this; contact @boegel if you're not sure what to do. |
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1621/console for more details). This pull request is now ready for review/testing. Please try and find someone who can tackle this; contact @boegel if you're not sure what to do. |
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1622/console for more details). This pull request is now ready for review/testing. Please try and find someone who can tackle this; contact @boegel if you're not sure what to do. |
Retested with easybuilders/easybuild-easyconfigs#1833, I see no reason to hold this back any further. Thanks a lot @bartoldeman for tackling this! |
This is a working easyblock to install PGI compilers. It is my first contribution so it may not be the most elegant yet. Please let me know if I missed something.
it works by untarring followed by running a sed-patched install script (to use perhaps use GCC module compilers and libraries instead of always the system compilers)
license_file is set in a matching easyconfig to which is a symlink is produced (we use the same license file for multiple PGI's, and using $PGI/license.dat looks more specific than using $LM_LICENSE_FILE).