Skip to content

pass down compilation flags from build environment for ESMF#2325

Merged
smoors merged 2 commits intoeasybuilders:developfrom
lexming:esmf-opts
Feb 5, 2021
Merged

pass down compilation flags from build environment for ESMF#2325
smoors merged 2 commits intoeasybuilders:developfrom
lexming:esmf-opts

Conversation

@lexming
Copy link
Copy Markdown
Contributor

@lexming lexming commented Feb 1, 2021

The build of ESMF uses its own set of flags and mostly ignores the standard flags in the environment. This PR passes the flags from EB to the build of ESMF if optarch is set in toolchainopts.

Building ESMF with EB flags vastly improves the number of tests that pass (make unit_tests):

  • current develop: Found 3478 non-exhaustive multi-processor unit tests, 285 passed and 3193 failed
  • this PR: Found 3478 non-exhaustive multi-processor unit tests, 3209 passed and 269 failed.

Update: after further tests, the improvements seem to boil down to having a proper optarch

  • setting ESMF_F90COMPILEOPTS=-O2 -ftree-vectorize -fno-math-errno -fPIC results in 229 passed and 3249 failed unit tests
  • setting ESMF_F90COMPILEOPTS=-O2 -ftree-vectorize -march=native -fno-math-errno -fPIC results in 3209 passed and 269 failed unit tests

Comment thread easybuild/easyblocks/e/esmf.py Outdated
@boegel boegel added the bug fix label Feb 3, 2021
@boegel boegel added this to the 4.3.3 (next release) milestone Feb 3, 2021
@boegel boegel changed the title pass compilation flags from EB to ESMF build pass down compilation flags from build environment for ESMF Feb 3, 2021
@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Feb 4, 2021

Successful tests with this PR:

Copy link
Copy Markdown
Contributor

@smoors smoors left a comment

Choose a reason for hiding this comment

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

lgtm

@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 5, 2021

Going in, thanks @lexming!

@smoors smoors merged commit b05c53c into easybuilders:develop Feb 5, 2021
@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Feb 5, 2021

Test report by @lexming

Overview of tested easyconfigs (in order)

  • SUCCESS ESMF-7.1.0r-iomkl-2018b.eb
  • SUCCESS ESMF-7.1.0r-intel-2018b.eb
  • SUCCESS ESMF-7.1.0r-intel-2018a.eb
  • SUCCESS ESMF-7.1.0r-foss-2018b.eb
  • SUCCESS ESMF-7.0.2-intel-2017b.eb
  • SUCCESS ESMF-6.3.0rp1-intel-2017a-HDF5-1.8.18.eb
  • SUCCESS ESMF-6.3.0rp1-intel-2017a.eb

Build succeeded for 7 out of 7 (7 easyconfigs in total)
node379.hydra.os - Linux centos linux 7.9.2009, x86_64, Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz, Python 2.7.5
See https://gist.github.com/8c01f0c045e7f34065d4915d3267b20a for a full test report.

@lexming lexming deleted the esmf-opts branch February 5, 2021 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants