From f6f821f2cd98b357f6b177a4545e748dc766f4c7 Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Mon, 1 Jul 2019 10:17:28 +0200 Subject: [PATCH 1/2] Adapt OpenMP flags for CCE 9.0.x in jacobi tests * Adapt flags in 'notool' checks. * Adapt flags in 'perftools' checks. --- cscs-checks/tools/profiling_and_debugging/notool.py | 3 ++- cscs-checks/tools/profiling_and_debugging/perftools.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/notool.py b/cscs-checks/tools/profiling_and_debugging/notool.py index e4ac6e2bcb..7bee0c8fda 100644 --- a/cscs-checks/tools/profiling_and_debugging/notool.py +++ b/cscs-checks/tools/profiling_and_debugging/notool.py @@ -15,7 +15,8 @@ def __init__(self, lang): self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu', 'PrgEnv-intel', 'PrgEnv-pgi'] self.prgenv_flags = { - 'PrgEnv-cray': ['-O2', '-g', '-homp'], + 'PrgEnv-cray': ['-O2', '-g', + '-homp' if lang == 'F90' else '-fopenmp'], 'PrgEnv-gnu': ['-O2', '-g', '-fopenmp'], 'PrgEnv-intel': ['-O2', '-g', '-qopenmp'], 'PrgEnv-pgi': ['-O2', '-g', '-mp'] diff --git a/cscs-checks/tools/profiling_and_debugging/perftools.py b/cscs-checks/tools/profiling_and_debugging/perftools.py index 472545474a..8a3fb7e662 100644 --- a/cscs-checks/tools/profiling_and_debugging/perftools.py +++ b/cscs-checks/tools/profiling_and_debugging/perftools.py @@ -31,7 +31,8 @@ def __init__(self, lang): self.build_system.max_concurrency = 1 self.prgenv_flags = { - 'PrgEnv-cray': ['-O2', '-g', '-h nomessage=3140', '-homp'], + 'PrgEnv-cray': ['-O2', '-g', '-h nomessage=3140', + '-homp' if lang == 'F90' else '-fopenmp'], 'PrgEnv-gnu': ['-O2', '-g', '-fopenmp'], 'PrgEnv-intel': ['-O2', '-g', '-qopenmp'], 'PrgEnv-pgi': ['-O2', '-g', '-mp'] From a0114ec56a2cf363471337730574b7070c4cbd14 Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Mon, 1 Jul 2019 13:36:52 +0200 Subject: [PATCH 2/2] Test also with PrgEnv-cray_classic --- config/cscs.py | 20 ++++++++++++------- .../tools/profiling_and_debugging/notool.py | 8 ++++++-- .../profiling_and_debugging/perftools.py | 7 ++++--- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/config/cscs.py b/config/cscs.py index 7da16e7cd0..f6d9476d39 100644 --- a/config/cscs.py +++ b/config/cscs.py @@ -132,8 +132,9 @@ class ReframeSettings: 'scheduler': 'local', 'modules': [], 'access': [], - 'environs': ['PrgEnv-cray', 'PrgEnv-gnu', - 'PrgEnv-intel', 'PrgEnv-pgi'], + 'environs': ['PrgEnv-cray', 'PrgEnv-cray_classic', + 'PrgEnv-gnu', 'PrgEnv-intel', + 'PrgEnv-pgi'], 'descr': 'Login nodes', 'max_jobs': 4 }, @@ -142,8 +143,8 @@ class ReframeSettings: 'scheduler': 'nativeslurm', 'modules': ['daint-gpu'], 'access': ['--constraint=gpu'], - 'environs': ['PrgEnv-cray', 'PrgEnv-gnu', - 'PrgEnv-intel'], + 'environs': ['PrgEnv-cray', 'PrgEnv-cray_classic', + 'PrgEnv-gnu', 'PrgEnv-intel'], 'descr': 'Hybrid nodes (Haswell/P100)', 'max_jobs': 100, 'resources': { @@ -155,8 +156,8 @@ class ReframeSettings: 'scheduler': 'nativeslurm', 'modules': ['daint-mc'], 'access': ['--constraint=mc'], - 'environs': ['PrgEnv-cray', 'PrgEnv-gnu', - 'PrgEnv-intel'], + 'environs': ['PrgEnv-cray', 'PrgEnv-cray_classic', + 'PrgEnv-gnu', 'PrgEnv-intel'], 'descr': 'Multicore nodes (Broadwell)', 'max_jobs': 100, 'resources': { @@ -203,7 +204,7 @@ class ReframeSettings: 'kesch': { 'descr': 'Kesch MCH', - 'hostnames': ['keschln-\d+'], + 'hostnames': [r'keschln-\d+'], 'modules_system': 'tmod', 'resourcesdir': '/apps/common/UES/reframe/resources', 'partitions': { @@ -444,6 +445,11 @@ class ReframeSettings: 'modules': ['PrgEnv-cray'], }, + 'PrgEnv-cray_classic': { + 'type': 'ProgEnvironment', + 'modules': ['PrgEnv-cray', 'cce/9.0.0-classic'], + }, + 'PrgEnv-gnu': { 'type': 'ProgEnvironment', 'modules': ['PrgEnv-gnu'], diff --git a/cscs-checks/tools/profiling_and_debugging/notool.py b/cscs-checks/tools/profiling_and_debugging/notool.py index 7bee0c8fda..94c91527f4 100644 --- a/cscs-checks/tools/profiling_and_debugging/notool.py +++ b/cscs-checks/tools/profiling_and_debugging/notool.py @@ -12,11 +12,12 @@ def __init__(self, lang): self.descr = 'Jacobi (without tool) %s check' % lang self.name = '%s_%s' % (type(self).__name__, lang.replace('+', 'p')) self.valid_systems = ['daint:gpu', 'daint:mc', 'dom:gpu', 'dom:mc'] - self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu', - 'PrgEnv-intel', 'PrgEnv-pgi'] + self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-cray_classic', + 'PrgEnv-gnu', 'PrgEnv-intel', 'PrgEnv-pgi'] self.prgenv_flags = { 'PrgEnv-cray': ['-O2', '-g', '-homp' if lang == 'F90' else '-fopenmp'], + 'PrgEnv-cray_classic': ['-O2', '-g', '-homp'], 'PrgEnv-gnu': ['-O2', '-g', '-fopenmp'], 'PrgEnv-intel': ['-O2', '-g', '-qopenmp'], 'PrgEnv-pgi': ['-O2', '-g', '-mp'] @@ -43,6 +44,7 @@ def __init__(self, lang): # OpenMP support varies between compilers: self.openmp_versions = ScopedDict({ 'PrgEnv-cray': {'version': 201511}, + 'PrgEnv-cray_classic': {'version': 201511}, 'PrgEnv-gnu': {'version': 201511}, 'PrgEnv-intel': {'version': 201611}, 'PrgEnv-pgi': {'version': 201307}, @@ -69,6 +71,7 @@ def __init__(self, lang): if lang == 'C++': self.reference_prgenv = { 'PrgEnv-cray': (0.38, -0.6, None, 's'), + 'PrgEnv-cray_classic': (0.38, -0.6, None, 's'), 'PrgEnv-gnu': (0.38, -0.6, None, 's'), 'PrgEnv-intel': (0.38, -0.6, None, 's'), 'PrgEnv-pgi': (18.0, -0.6, None, 's'), @@ -76,6 +79,7 @@ def __init__(self, lang): elif lang == 'F90': self.reference_prgenv = { 'PrgEnv-cray': (0.17, -0.6, None, 's'), + 'PrgEnv-cray_classic': (0.17, -0.6, None, 's'), 'PrgEnv-gnu': (0.17, -0.6, None, 's'), 'PrgEnv-intel': (0.17, -0.6, None, 's'), 'PrgEnv-pgi': (18.0, -0.6, None, 's'), diff --git a/cscs-checks/tools/profiling_and_debugging/perftools.py b/cscs-checks/tools/profiling_and_debugging/perftools.py index 8a3fb7e662..91115e28c9 100644 --- a/cscs-checks/tools/profiling_and_debugging/perftools.py +++ b/cscs-checks/tools/profiling_and_debugging/perftools.py @@ -17,8 +17,8 @@ def __init__(self, lang): else: self.valid_systems = ['daint:gpu', 'dom:gpu'] - self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu', - 'PrgEnv-intel', 'PrgEnv-pgi'] + self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-cray_classic', + 'PrgEnv-gnu', 'PrgEnv-intel', 'PrgEnv-pgi'] if lang == 'Cpp': self.sourcesdir = os.path.join('src', 'C++') else: @@ -33,6 +33,8 @@ def __init__(self, lang): self.prgenv_flags = { 'PrgEnv-cray': ['-O2', '-g', '-h nomessage=3140', '-homp' if lang == 'F90' else '-fopenmp'], + 'PrgEnv-cray_classic': ['-O2', '-g', '-h nomessage=3140', + '-homp'], 'PrgEnv-gnu': ['-O2', '-g', '-fopenmp'], 'PrgEnv-intel': ['-O2', '-g', '-qopenmp'], 'PrgEnv-pgi': ['-O2', '-g', '-mp'] @@ -80,4 +82,3 @@ def setup(self, environ, partition, **job_opts): self.build_system.cflags = flags self.build_system.cxxflags = flags self.build_system.fflags = flags - self.build_system.ldflags = flags