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
Cray OpenMP wrapper flag #1794
Cray OpenMP wrapper flag #1794
Conversation
@gppezzi looks perfect to me... Did you test it? Any example easyconfigs where you have |
I've tested with GROMACS GPU but this is WIP, I will try with other simpler cases and let you know. |
@gppezzi maybe try building |
The OpenMP flags are sadly inconsistent between the wrappers for CCE, Intel, GNU and PGI: OpenMP support:
-homp Enables OpenMP and links in OpenMP libraries when
possible using CCE.
(This is the default.)
-hnoomp Disables OpenMP and links in non-OpenMP libraries
when using CCE.
-fopenmp Enables OpenMP and links in OpenMP libraries when
possible using GNU.
-openmp Enables OpenMP and links in OpenMP libraries when
possible when using Intel.
-mp Enables OpenMP and links in OpenMP libraries when
possible using PGI.
-Mnoopenmp Disables OpenMP and links in non-OpenMP libraries
when using PGI. |
so for the moment only fixing GNU)
If the new implementation makes sense to you, I'll apply the same fix accordingly to Intel, CCE and PGI. Let me know.
|
Yeah, this looks good! Update the unique compiler flags map for each of the subclasses accordingly. |
I've updated the other subclasses. So far I've tested this for GNU and Intel. CCE and PGI still need to be checked. |
@@ -38,3 +38,4 @@ class CrayIntel(CrayPEIntel, CrayMPICH, LibSci): | |||
"""Compiler toolchain for Cray Programming Environment for Intel compilers (PrgEnv-intel).""" | |||
NAME = 'CrayIntel' | |||
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME | |||
CrayPEIntel.COMPILER_UNIQUE_OPTION_MAP.update({'openmp': 'openmp'}) |
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.
openmp
is deprecated for recent Intel versions, better stick to fopenmp
here too, cfr. #1718
@gppezzi I think you'll need to tackle this in |
@@ -137,6 +137,7 @@ class CrayPEGCC(CrayPECompiler): | |||
def __init__(self, *args, **kwargs): | |||
"""CrayPEGCC constructor.""" | |||
super(CrayPEGCC, self).__init__(*args, **kwargs) | |||
self.COMPILER_UNIQUE_OPTION_MAP.update({'openmp': 'fopenmp'}) |
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.
@gppezzi I would go with this instead, just to match the style below:
self.COMPILER_UNIQUE_OPTION_MAP['openmp'] = 'fopenmp'
other than that: should be good to go
@boegel any other remark? |
lgtm, thanks @gppezzi |
First attempt to fix the "-True" flag that is added when using openmp as TC option on Cray.
@boegel @pforai