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

{chem}[intel/2017b] CP2K v5.1, Libint v1.1.6, libxsmm v1.8.1 #5378

Merged
merged 4 commits into from
Jan 19, 2018

Conversation

boegel
Copy link
Member

@boegel boegel commented Nov 21, 2017

(created using eb --new-pr)

classical pair and many-body potentials. """

toolchain = {'name': 'intel', 'version': '2017b'}
toolchainopts = {'pic': True, 'precise': True}
Copy link
Member Author

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?

Copy link
Member Author

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...

Copy link
Contributor

@tovrstra tovrstra Nov 22, 2017

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?

Copy link
Member Author

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.

Copy link
Contributor

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.

Copy link
Member Author

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
    *with precise 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"
Copy link
Member Author

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...

Copy link
Contributor

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.)

@boegel boegel added the update label Nov 21, 2017
@boegel boegel added this to the 3.5.0 milestone Nov 21, 2017
@boegel boegel modified the milestones: 3.5.0, next release Dec 6, 2017
@boegel boegel modified the milestones: 3.5.1, 3.6.0 Jan 11, 2018
…ful of tests fail, 20% slower to run test suite)
@boegel
Copy link
Member Author

boegel commented Jan 18, 2018

Test report by @boegel
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in this PR)
node2428.golett.os - Linux centos linux 7.4.1708, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz, Python 2.7.5
See https://gist.github.com/3ae263423b63d887a84601e8dce901df for a full test report.

@boegel
Copy link
Member Author

boegel commented Jan 18, 2018

Test report by @boegel
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in this PR)
node2036.delcatty.os - Linux centos linux 7.4.1708, Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz, Python 2.7.5
See https://gist.github.com/2babc2b31679050b5418de3939eb1515 for a full test report.

@boegel
Copy link
Member Author

boegel commented Jan 18, 2018

Test report by @boegel
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in this PR)
node2036.delcatty.os - Linux centos linux 7.4.1708, Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz, Python 2.7.5
See https://gist.github.com/426cb16a97d1f6624b9b4a9e08a24a0b for a full test report.

@boegel
Copy link
Member Author

boegel commented Jan 18, 2018

Test report by @boegel
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in this PR)
node2428.golett.os - Linux centos linux 7.4.1708, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz, Python 2.7.5
See https://gist.github.com/9df0f9deee352c8b6bac911e08ed8b67 for a full test report.

@wpoely86 wpoely86 merged commit e277113 into easybuilders:develop Jan 19, 2018
@boegel boegel deleted the 20171121142357_new_pr_CP2K51 branch January 19, 2018 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants