-
Notifications
You must be signed in to change notification settings - Fork 704
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
{chem}[intel/2017b] CP2K v5.1, Libint v1.1.6, libxsmm v1.8.1 #5378
{chem}[intel/2017b] CP2K v5.1, Libint v1.1.6, libxsmm v1.8.1 #5378
Conversation
….eb, libxsmm-1.8.1-intel-2017b.eb
classical pair and many-body potentials. """ | ||
|
||
toolchain = {'name': 'intel', 'version': '2017b'} | ||
toolchainopts = {'pic': True, 'precise': 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.
The 'precise': True
was helping significantly with getting more passed tests in the test suite, especially on Intel Haswell, but I'm not sure what kind of impact this has on performance.
@tovrstra Are you or someone else in your group up for taking a look at this?
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.
Note: do use the updated easyblock from easybuilders/easybuild-easyblocks#1293...
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 we also look at the tests that come with CP2K or rather test different types of simulations that we are currently doing also with older versions of CP2K?
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.
Well, both, but specifically w.r.t. the use of precise
I'm mainly concerned with performance of 'real' runs.
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.
OK. I'll already forward it to the involved colleagues. I may also try some of this myself today.
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.
Hmm, I checked this again today, and the impact of enabling precise
is not as I reported earlier. Here's what I'm seeing now, on an Intel Haswell system (and the updated CP2K easyblock from easybuilders/easybuild-easyblocks#1293):
- with
precise
enabled: 1 failed test, 13 wrong tests; total time for testing: 3559s
*withprecise
disabled (the default setting): 1 failed test, 1 wrong test; total time for testing: 2897s
So, the impact of enabling precise
on performance seems quite substantial (about 20%), while it doesn't help at all with the test results (it even makes it a bit worse)...
Hence, I'll update this PR to drop the 'precise': True
...
|
||
# values to use here are +1 those used for building Libint | ||
# see https://github.com/cp2k/cp2k/blob/master/cp2k/tools/hfx_tools/libint_tools/README_LIBINT | ||
extradflags = "-D__LIBINT_MAX_AM=6 -D__LIBDERIV_MAX_AM1=5" |
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.
This is quite important, see also discussion in easybuilders/easybuild-easyblocks#1174.
And maybe this needs to be leveraged to the CP2K easyblock instead, since you can query how LibInt was configured, I think...
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, certainly possible, in line with the README_LIBINT:
$ ml load Libint/1.1.6-intel-2016b
$ grep LIBINT_MAX_AM $EBROOTLIBINT/include/libint/libint.h
#define LIBINT_MAX_AM 5
$ grep LIBDERIV_MAX_AM1 $EBROOTLIBINT/include/libderiv/libderiv.h
#define LIBDERIV_MAX_AM1 4
#define LIBDERIV_MAX_AM12 3
You need to increment these numbers by 1. (I guess CP2K does not pick up these definitions because the fortran interface to Libint does not define them.)
…ful of tests fail, 20% slower to run test suite)
Test report by @boegel |
Test report by @boegel |
Test report by @boegel |
Test report by @boegel |
(created using
eb --new-pr
)