From 58e037d3ee1bc43523e1f443df7573b6de402526 Mon Sep 17 00:00:00 2001 From: ajocksch Date: Tue, 4 Sep 2018 14:40:10 +0200 Subject: [PATCH 1/5] WIP: revisit the tests --- config/cscs.py | 54 +++++++++++++++++++++++++---- cscs-checks/mch/automatic_arrays.py | 12 ++++++- 2 files changed, 58 insertions(+), 8 deletions(-) diff --git a/config/cscs.py b/config/cscs.py index 90bab0ca82..c2f6d78ef5 100644 --- a/config/cscs.py +++ b/config/cscs.py @@ -124,8 +124,10 @@ class ReframeSettings: 'access': ['--partition=cn-regression'], 'environs': ['PrgEnv-gnu', 'PrgEnv-cray', 'PrgEnv-pgi', 'PrgEnv-gnu-gdr', - 'PrgEnv-pgi_17.10_gdr', 'PrgEnv-pgi_18.4_gdr', - 'PrgEnv-cray_gdr', 'PrgEnv-cray_gdr_2.3'], + 'PrgEnv-cray_gdr', 'PrgEnv-cray_gdr_2.3', + 'PrgEnv-c2sm-pgi', 'PrgEnv-c2sm-pgi-gpu', + 'PrgEnv-c2sm-gnu', 'PrgEnv-c2sm-gnu-gpu', + 'PrgEnv-c2sm-cray', 'PrgEnv-c2sm-cray-gpu'], 'descr': 'Kesch compute nodes', 'resources': { '_rfm_gpu': ['--gres=gpu:{num_gpus_per_node}'] @@ -205,21 +207,56 @@ class ReframeSettings: }, 'PrgEnv-pgi': { 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-pgi/17.10'], + 'modules': ['PrgEnv-pgi/17.10_gdr'], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpif90', }, - 'PrgEnv-pgi_17.10_gdr': { + 'PrgEnv-c2sm-gnu': { 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-pgi/17.10_gdr'], + 'modules': ['PrgEnv-gnu', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/gnu-env/base'], + 'cc': 'mpicc', + 'cxx': 'mpicxx', + 'ftn': 'mpif90', + }, + 'PrgEnv-c2sm-gnu-gpu': { + 'type': 'ProgEnvironment', + 'modules': ['PrgEnv-gnu', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/gnu-env/gpu'], + 'cc': 'mpicc', + 'cxx': 'mpicxx', + 'ftn': 'mpif90', + }, + 'PrgEnv-c2sm-gnu-cpp': { + 'type': 'ProgEnvironment', + 'modules': ['PrgEnv-gnu', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/gnu_for_cpp'], + 'cc': 'mpicc', + 'cxx': 'mpicxx', + 'ftn': 'mpif90', + }, + 'PrgEnv-c2sm-cray': { + 'type': 'ProgEnvironment', + 'modules': ['PrgEnv-cray', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/cray-env/base'], + 'cc': 'cc', + 'cxx': 'CC', + 'ftn': 'ftn -D__CRAY_FORTRAN_', + }, + 'PrgEnv-c2sm-cray-gpu': { + 'type': 'ProgEnvironment', + 'modules': ['PrgEnv-cray', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/cray-env/gpu'], + 'cc': 'cc', + 'cxx': 'CC', + 'ftn': 'ftn -D__CRAY_FORTRAN_', + }, + 'PrgEnv-c2sm-pgi': { + 'type': 'ProgEnvironment', + 'modules': ['/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/pgi-env/base'], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpif90', }, - 'PrgEnv-pgi_18.4_gdr': { + 'PrgEnv-c2sm-pgi-gpu': { 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-pgi/18.4_gdr'], + 'modules': ['/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/pgi-env/gpu'], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpif90', @@ -227,6 +264,9 @@ class ReframeSettings: 'PrgEnv-cray_gdr': { 'type': 'ProgEnvironment', 'modules': ['PrgEnv-cray/1.0.2_gdr'], + 'cc': 'cc', + 'cxx': 'CC', + 'ftn': 'ftn', }, 'PrgEnv-cray_gdr_2.3': { 'type': 'ProgEnvironment', diff --git a/cscs-checks/mch/automatic_arrays.py b/cscs-checks/mch/automatic_arrays.py index 7fab45dc49..874097e61c 100644 --- a/cscs-checks/mch/automatic_arrays.py +++ b/cscs-checks/mch/automatic_arrays.py @@ -8,7 +8,8 @@ def __init__(self, **kwargs): super().__init__() self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn'] self.valid_prog_environs = ['PrgEnv-cray*', 'PrgEnv-pgi*', - 'PrgEnv-gnu'] + 'PrgEnv-gnu', + 'PrgEnv-c2sm-pgi', 'PrgEnv-c2sm-cray'] if self.current_system.name in ['daint', 'dom']: self.modules = ['craype-accel-nvidia60'] self._pgi_flags = '-acc -ta=tesla:cc60 -Mnorpath' @@ -60,6 +61,15 @@ def setup(self, partition, environ, **job_opts): elif environ.name.startswith('PrgEnv-gnu'): environ.fflags = '-O2' key = 'PrgEnv-gnu' + elif environ.name.startswith('PrgEnv-c2sm-gnu'): + environ.fflags = '-O2' + key = 'PrgEnv-gnu' + elif environ.name.startswith('PrgEnv-c2sm-pgi'): + environ.fflags = '-O2' + key = 'PrgEnv-pgi' + elif environ.name.startswith('PrgEnv-c2sm-cray'): + environ.fflags = '-O2' + key = 'PrgEnv-cray' self.reference = self.arrays_reference[key] super().setup(partition, environ, **job_opts) From 417a68af750937639775e9fa4b0133f8ee5a06dd Mon Sep 17 00:00:00 2001 From: ajocksch Date: Wed, 5 Sep 2018 09:56:48 +0200 Subject: [PATCH 2/5] no double module loading any more --- reframe/core/pipeline.py | 4 +++- unittests/test_pipeline.py | 6 ++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/reframe/core/pipeline.py b/reframe/core/pipeline.py index b43e5509c2..e3dc1342dd 100644 --- a/reframe/core/pipeline.py +++ b/reframe/core/pipeline.py @@ -21,7 +21,7 @@ import reframe.utility.os_ext as os_ext from reframe.core.buildsystems import BuildSystem, BuildSystemField from reframe.core.deferrable import deferrable, _DeferredExpression, evaluate -from reframe.core.environments import Environment +from reframe.core.environments import Environment, EnvironmentSnapshot from reframe.core.exceptions import (BuildError, PipelineError, SanityError, user_deprecation_warning) from reframe.core.launchers.registry import getlauncher @@ -761,12 +761,14 @@ def _setup_environ(self, environ): for k, v in self.variables.items(): self._current_environ.set_variable(k, v) + environ_save = EnvironmentSnapshot() # First load the local environment of the partition self.logger.debug('loading environment for the current partition') self._current_partition.local_env.load() self.logger.debug("loading test's environment") self._current_environ.load() + environ_save.load() def _setup_paths(self): """Setup the check's dynamic paths.""" diff --git a/unittests/test_pipeline.py b/unittests/test_pipeline.py index 7fc1647449..c44396e5c4 100644 --- a/unittests/test_pipeline.py +++ b/unittests/test_pipeline.py @@ -69,11 +69,9 @@ def test_environ_setup(self): test.local = True test.setup(self.partition, self.progenv) - for m in test.modules: - self.assertTrue(rt.runtime().modules_system.is_module_loaded(m)) - for k, v in test.variables.items(): - self.assertEqual(os.environ[k], v) + for k in test.variables.keys(): + self.assertNotIn(k, os.environ) # Manually unload the environment self.progenv.unload() From 96384f9bf4f8a5b02f5b22e75268cda494100566 Mon Sep 17 00:00:00 2001 From: ajocksch Date: Wed, 5 Sep 2018 14:10:39 +0200 Subject: [PATCH 3/5] added comment for temporary module loading --- reframe/core/pipeline.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reframe/core/pipeline.py b/reframe/core/pipeline.py index e3dc1342dd..52a0948970 100644 --- a/reframe/core/pipeline.py +++ b/reframe/core/pipeline.py @@ -766,6 +766,8 @@ def _setup_environ(self, environ): self.logger.debug('loading environment for the current partition') self._current_partition.local_env.load() + # Temporarily load the test's environment to record the actual module + # load/unload sequence self.logger.debug("loading test's environment") self._current_environ.load() environ_save.load() From 8c19643a8237db6ff3f3bc1bc66f86d444949ac6 Mon Sep 17 00:00:00 2001 From: Vasileios Karakasis Date: Wed, 5 Sep 2018 14:31:02 +0200 Subject: [PATCH 4/5] Remove stale files --- config/cscs.py | 54 ++++------------------------- cscs-checks/mch/automatic_arrays.py | 12 +------ 2 files changed, 8 insertions(+), 58 deletions(-) diff --git a/config/cscs.py b/config/cscs.py index c2f6d78ef5..90bab0ca82 100644 --- a/config/cscs.py +++ b/config/cscs.py @@ -124,10 +124,8 @@ class ReframeSettings: 'access': ['--partition=cn-regression'], 'environs': ['PrgEnv-gnu', 'PrgEnv-cray', 'PrgEnv-pgi', 'PrgEnv-gnu-gdr', - 'PrgEnv-cray_gdr', 'PrgEnv-cray_gdr_2.3', - 'PrgEnv-c2sm-pgi', 'PrgEnv-c2sm-pgi-gpu', - 'PrgEnv-c2sm-gnu', 'PrgEnv-c2sm-gnu-gpu', - 'PrgEnv-c2sm-cray', 'PrgEnv-c2sm-cray-gpu'], + 'PrgEnv-pgi_17.10_gdr', 'PrgEnv-pgi_18.4_gdr', + 'PrgEnv-cray_gdr', 'PrgEnv-cray_gdr_2.3'], 'descr': 'Kesch compute nodes', 'resources': { '_rfm_gpu': ['--gres=gpu:{num_gpus_per_node}'] @@ -207,56 +205,21 @@ class ReframeSettings: }, 'PrgEnv-pgi': { 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-pgi/17.10_gdr'], - 'cc': 'mpicc', - 'cxx': 'mpicxx', - 'ftn': 'mpif90', - }, - 'PrgEnv-c2sm-gnu': { - 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-gnu', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/gnu-env/base'], - 'cc': 'mpicc', - 'cxx': 'mpicxx', - 'ftn': 'mpif90', - }, - 'PrgEnv-c2sm-gnu-gpu': { - 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-gnu', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/gnu-env/gpu'], + 'modules': ['PrgEnv-pgi/17.10'], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpif90', }, - 'PrgEnv-c2sm-gnu-cpp': { + 'PrgEnv-pgi_17.10_gdr': { 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-gnu', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/gnu_for_cpp'], - 'cc': 'mpicc', - 'cxx': 'mpicxx', - 'ftn': 'mpif90', - }, - 'PrgEnv-c2sm-cray': { - 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-cray', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/cray-env/base'], - 'cc': 'cc', - 'cxx': 'CC', - 'ftn': 'ftn -D__CRAY_FORTRAN_', - }, - 'PrgEnv-c2sm-cray-gpu': { - 'type': 'ProgEnvironment', - 'modules': ['PrgEnv-cray', '/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/cray-env/gpu'], - 'cc': 'cc', - 'cxx': 'CC', - 'ftn': 'ftn -D__CRAY_FORTRAN_', - }, - 'PrgEnv-c2sm-pgi': { - 'type': 'ProgEnvironment', - 'modules': ['/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/pgi-env/base'], + 'modules': ['PrgEnv-pgi/17.10_gdr'], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpif90', }, - 'PrgEnv-c2sm-pgi-gpu': { + 'PrgEnv-pgi_18.4_gdr': { 'type': 'ProgEnvironment', - 'modules': ['/apps/common/UES/sandbox/kraushm/c2sm-rcm-env/env', 'c2sm/pgi-env/gpu'], + 'modules': ['PrgEnv-pgi/18.4_gdr'], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpif90', @@ -264,9 +227,6 @@ class ReframeSettings: 'PrgEnv-cray_gdr': { 'type': 'ProgEnvironment', 'modules': ['PrgEnv-cray/1.0.2_gdr'], - 'cc': 'cc', - 'cxx': 'CC', - 'ftn': 'ftn', }, 'PrgEnv-cray_gdr_2.3': { 'type': 'ProgEnvironment', diff --git a/cscs-checks/mch/automatic_arrays.py b/cscs-checks/mch/automatic_arrays.py index 874097e61c..7fab45dc49 100644 --- a/cscs-checks/mch/automatic_arrays.py +++ b/cscs-checks/mch/automatic_arrays.py @@ -8,8 +8,7 @@ def __init__(self, **kwargs): super().__init__() self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn'] self.valid_prog_environs = ['PrgEnv-cray*', 'PrgEnv-pgi*', - 'PrgEnv-gnu', - 'PrgEnv-c2sm-pgi', 'PrgEnv-c2sm-cray'] + 'PrgEnv-gnu'] if self.current_system.name in ['daint', 'dom']: self.modules = ['craype-accel-nvidia60'] self._pgi_flags = '-acc -ta=tesla:cc60 -Mnorpath' @@ -61,15 +60,6 @@ def setup(self, partition, environ, **job_opts): elif environ.name.startswith('PrgEnv-gnu'): environ.fflags = '-O2' key = 'PrgEnv-gnu' - elif environ.name.startswith('PrgEnv-c2sm-gnu'): - environ.fflags = '-O2' - key = 'PrgEnv-gnu' - elif environ.name.startswith('PrgEnv-c2sm-pgi'): - environ.fflags = '-O2' - key = 'PrgEnv-pgi' - elif environ.name.startswith('PrgEnv-c2sm-cray'): - environ.fflags = '-O2' - key = 'PrgEnv-cray' self.reference = self.arrays_reference[key] super().setup(partition, environ, **job_opts) From 4ddf52726e6a83aa0ae1d22040923cb9fc575a37 Mon Sep 17 00:00:00 2001 From: ajocksch Date: Wed, 5 Sep 2018 14:36:37 +0200 Subject: [PATCH 5/5] moved comment --- reframe/core/pipeline.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reframe/core/pipeline.py b/reframe/core/pipeline.py index d0f5ad119b..fd143a2d28 100644 --- a/reframe/core/pipeline.py +++ b/reframe/core/pipeline.py @@ -775,13 +775,13 @@ def _setup_environ(self, environ): for k, v in self.variables.items(): self._current_environ.set_variable(k, v) + # Temporarily load the test's environment to record the actual module + # load/unload sequence environ_save = EnvironmentSnapshot() # First load the local environment of the partition self.logger.debug('loading environment for the current partition') self._current_partition.local_env.load() - # Temporarily load the test's environment to record the actual module - # load/unload sequence self.logger.debug("loading test's environment") self._current_environ.load() environ_save.load()