Closed gdicker1 closed 7 months ago
@dazlich and @areanddee I wanted to move the conversation about GPU builds to a separate thread so that #31 can be closed by the v2.1.001 release. Please feel free to link or copy any text that was important from the previous issue.
Related PRs: https://github.com/EarthWorksOrg/mpas-seaice/pull/9, https://github.com/EarthWorksOrg/mpas-framework/pull/7, https://github.com/EarthWorksOrg/mpas-ocean/pull/7 (to be merged/used together)
Marking this as closed since #39 should have fixed it. The multiple compilation issue is being tracked in #40.
Whenever attempting to build compsets that involve multiple MPAS cores (e.g. the "FullyCoupled" compset that uses MPAS-A, MPAS-O, and MPAS-SI) with GPU flags enabled, symbol collisions occur and compilation fails. This points to duplicate compilation of routines in the "shared MPAS infrastructure" that is contained in the MPAS-A source code (which is compiled just by MPAS-A) as well as in EarthWorksOrg/mpas-framework repository (which is compiled by both MPAS-O and MPAS-SI). It seems that when OpenACC compilation is enabled, a different linking process occurs (with stricter rules for the linker for CPU builds) that causes compilation to fail when creating the
cesm.exe
file.Example error message(s):
This issue continues the discussion from #31, but focuses on the GPU/OpenACC issues that were first mentioned in this comment.
Potential solutions: