-
Notifications
You must be signed in to change notification settings - Fork 284
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
New EasyBlock for SuperLU #860
Conversation
Automatic reply from Jenkins: Can I test this? |
Jenkins: ok to test |
self.cfg['separate_build_dir'] = True | ||
|
||
if self.cfg['build_shared_libs']: | ||
self.cfg['configopts'] += "-DBUILD_SHARED_LIBS=ON " |
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.
when updating self.cfg
, use self.cfg.update
:
self.cfg.update('configopts', '-DBUILD_SHARED_LIBS=ON')
note that you don't need to worry about including a trailing space, update
will do that for you
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1770/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. |
# Set the BLAS library to use | ||
# For this, use the BLA_VENDOR option from the FindBLAS module of CMake | ||
# cf https://cmake.org/cmake/help/latest/module/FindBLAS.html | ||
if get_software_root('IMKL'): |
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.
use imkl
(the official software name), although it matters little in practice
you're also missing a version check here, since the value you set is specific to imkl 10.x?
@boegel @fgeorgatos Thanks for reviewing. Some comments below:
|
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1771/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. |
else: | ||
# Fallback: try everything, pick the first one | ||
# CMake should fail if none is found | ||
self.cfg.update('configopts', '-DBLA_VENDOR="All"') |
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.
I prefer failing here.
The EB policy is to use the BLAS available in the toolchain. If it's not available, we shouldn't let SuperLU pick another random BLAS library it may find...
@besserox: license looks fine now, but the important thing is that you're agreeing with the contributor agreement (if not, you should close this PR) |
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1773/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. |
@boegel Some more comments:
|
toolchain_blas = self.toolchain.definition().get('BLAS', ['NO_BLAS_IN_TOOLCHAIN'])[0]
if toolchain_blas == 'OpenBLAS':
...
elif ... |
@besserox: we do support installing the 32-bit version of imkl, but it's not easy to detect that currently... With the exception of an ancient toolchain, all imkl's we use in toolchains are 64-bit. |
elif toolchain_blas == 'OpenBLAS': | ||
# Unfortunately, OpenBLAS is not recognized by FindBLAS from CMake, | ||
# we have to specify the OpenBLAS library manually | ||
self.cfg.update('configopts', '-DBLAS_LIBRARIES="${EBROOTOPENBLAS}/lib/libopenblas.a;-pthread"') |
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.
use get_software_libdir('OpenBLAS')
instead of ${EBROOTOPENBLAS}/lib
? That's clearer (full path specified), and it deals with the possibility that the library is actually in lib64
(for whatever reason).
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.
@boegel BTW, the usage of get_software_libdir()
break the --extended-dry-run
functionality. In the sense that, because of this, it reports
!!!
!!! WARNING: ignoring error 'NoneType' object has no attribute 'startswith'
!!!
instead of the actual configure command line.
Any way to fix this? (not here, but in a general way)
@boegel I fixed your remarks |
Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1808/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. |
@besserox the window for EasyBuild v2.8.0 is closing this week, any updates on this? |
@boegel I have not re-tested, but it should be ready to go |
looks great, testing the easyconfigs in easybuilders/easybuild-easyconfigs#2665... |
Successful test reports in easybuilders/easybuild-easyconfigs#2665, so good to go. Thanks @besserox! |
No description provided.