diff --git a/config/cscs-ci.py b/config/cscs-ci.py index 8e060eed6e..31e28f90a9 100644 --- a/config/cscs-ci.py +++ b/config/cscs-ci.py @@ -162,7 +162,7 @@ 'builtin' ], 'descr': 'Tsa compute nodes', - 'max_jobs': 10, + 'max_jobs': 20, 'resources': [ { 'name': '_rfm_gpu', diff --git a/config/cscs.py b/config/cscs.py index bdd7ff85cb..7e82d6f5e2 100644 --- a/config/cscs.py +++ b/config/cscs.py @@ -545,10 +545,13 @@ 'environs': [ 'PrgEnv-pgi', 'PrgEnv-pgi-nompi', + 'PrgEnv-pgi-nompi-nocuda', 'PrgEnv-gnu', - 'PrgEnv-gnu-nompi' + 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nompi-nocuda' ], 'descr': 'Arolla login nodes', + 'max_jobs': 4, 'launcher': 'local' }, { @@ -560,10 +563,13 @@ 'environs': [ 'PrgEnv-pgi', 'PrgEnv-pgi-nompi', + 'PrgEnv-pgi-nompi-nocuda', 'PrgEnv-gnu', - 'PrgEnv-gnu-nompi' + 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nompi-nocuda' ], 'descr': 'Arolla post-processing nodes', + 'max_jobs': 50, 'launcher': 'srun' }, { @@ -575,8 +581,10 @@ 'environs': [ 'PrgEnv-gnu', 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nompi-nocuda', 'PrgEnv-pgi', - 'PrgEnv-pgi-nompi' + 'PrgEnv-pgi-nompi', + 'PrgEnv-pgi-nompi-nocuda' ], 'descr': 'Arolla compute nodes', 'resources': [ @@ -587,6 +595,7 @@ ] } ], + 'max_jobs': 50, 'launcher': 'srun' } ] @@ -606,10 +615,15 @@ 'environs': [ 'PrgEnv-pgi', 'PrgEnv-pgi-nompi', + 'PrgEnv-pgi-nocuda', + 'PrgEnv-pgi-nompi-nocuda', 'PrgEnv-gnu', - 'PrgEnv-gnu-nompi' + 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nocuda', + 'PrgEnv-gnu-nompi-nocuda' ], 'descr': 'Tsa login nodes', + 'max_jobs': 4, 'launcher': 'local' }, { @@ -621,10 +635,15 @@ 'environs': [ 'PrgEnv-pgi', 'PrgEnv-pgi-nompi', + 'PrgEnv-pgi-nocuda', + 'PrgEnv-pgi-nompi-nocuda', 'PrgEnv-gnu', - 'PrgEnv-gnu-nompi' + 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nocuda', + 'PrgEnv-gnu-nompi-nocuda' ], 'descr': 'Tsa post-processing nodes', + 'max_jobs': 20, 'launcher': 'srun' }, { @@ -636,10 +655,15 @@ 'environs': [ 'PrgEnv-gnu', 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nocuda', + 'PrgEnv-gnu-nompi-nocuda', 'PrgEnv-pgi', - 'PrgEnv-pgi-nompi' + 'PrgEnv-pgi-nompi', + 'PrgEnv-pgi-nocuda', + 'PrgEnv-pgi-nompi-nocuda' ], 'descr': 'Tsa compute nodes', + 'max_jobs': 20, 'resources': [ { 'name': '_rfm_gpu', @@ -781,10 +805,22 @@ 'cxx': 'g++', 'ftn': 'gfortran' }, + { + 'name': 'PrgEnv-pgi-nompi-nocuda', + 'target_systems': [ + 'arolla', 'tsa' + ], + 'modules': [ + 'PrgEnv-pgi/19.9-nocuda' + ], + 'cc': 'pgcc', + 'cxx': 'pgc++', + 'ftn': 'pgf90' + }, { 'name': 'PrgEnv-pgi-nompi', 'target_systems': [ - 'arolla' + 'arolla', 'tsa' ], 'modules': [ 'PrgEnv-pgi/19.9' @@ -796,7 +832,7 @@ { 'name': 'PrgEnv-pgi', 'target_systems': [ - 'arolla' + 'arolla', 'tsa' ], 'modules': [ 'PrgEnv-pgi/19.9' @@ -806,72 +842,60 @@ 'ftn': 'mpifort' }, { - 'name': 'PrgEnv-gnu', + 'name': 'PrgEnv-pgi-nocuda', 'target_systems': [ - 'arolla' + 'arolla', 'tsa' ], 'modules': [ - 'PrgEnv-gnu/19.2' + 'PrgEnv-pgi/19.9-nocuda' ], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpifort' }, { - 'name': 'PrgEnv-gnu-nompi', + 'name': 'PrgEnv-gnu', 'target_systems': [ - 'arolla' + 'arolla', 'tsa' ], 'modules': [ 'PrgEnv-gnu/19.2' ], - 'cc': 'gcc', - 'cxx': 'g++', - 'ftn': 'gfortran' - }, - { - 'name': 'PrgEnv-pgi-nompi', - 'target_systems': [ - 'tsa' - ], - 'modules': [ - 'PrgEnv-pgi/19.9' - ], - 'cc': 'pgcc', - 'cxx': 'pgc++', - 'ftn': 'pgf90' + 'cc': 'mpicc', + 'cxx': 'mpicxx', + 'ftn': 'mpifort' }, { - 'name': 'PrgEnv-pgi', + 'name': 'PrgEnv-gnu-nocuda', 'target_systems': [ - 'tsa' + 'arolla', 'tsa' ], 'modules': [ - 'PrgEnv-pgi/19.9' + 'PrgEnv-gnu/19.2-nocuda' ], 'cc': 'mpicc', 'cxx': 'mpicxx', 'ftn': 'mpifort' }, { - 'name': 'PrgEnv-gnu', + 'name': 'PrgEnv-gnu-nompi', 'target_systems': [ - 'tsa' + 'arolla', 'tsa' ], 'modules': [ 'PrgEnv-gnu/19.2' ], - 'cc': 'mpicc', - 'cxx': 'mpicxx', - 'ftn': 'mpifort' + 'cc': 'gcc', + 'cxx': 'g++', + 'ftn': 'gfortran' }, { - 'name': 'PrgEnv-gnu-nompi', + 'name': 'PrgEnv-gnu-nompi-nocuda', 'target_systems': [ - 'tsa' + 'arolla', 'tsa' ], 'modules': [ - 'PrgEnv-gnu/19.2' + 'PrgEnv-gnu/19.2-nocuda' ], 'cc': 'gcc', 'cxx': 'g++', diff --git a/cscs-checks/cuda/cuda_checks.py b/cscs-checks/cuda/cuda_checks.py index fa41d4f0e9..f0a3fa86f4 100644 --- a/cscs-checks/cuda/cuda_checks.py +++ b/cscs-checks/cuda/cuda_checks.py @@ -17,7 +17,9 @@ def __init__(self): self.valid_prog_environs += ['PrgEnv-cray-nompi', 'PrgEnv-gnu-nompi'] elif self.current_system.name in ['arolla', 'tsa']: - self.valid_prog_environs += ['PrgEnv-gnu-nompi'] + self.valid_prog_environs += ['PrgEnv-pgi', + 'PrgEnv-gnu-nompi', + 'PrgEnv-pgi-nompi'] self.sourcesdir = os.path.join(self.current_system.resourcesdir, 'CUDA', 'essentials') diff --git a/cscs-checks/mch/cuda_stress_test.py b/cscs-checks/mch/cuda_stress_test.py index f2e28e2960..7341c9fbaa 100644 --- a/cscs-checks/mch/cuda_stress_test.py +++ b/cscs-checks/mch/cuda_stress_test.py @@ -19,7 +19,8 @@ def __init__(self): self.modules = ['cudatoolkit/8.0.61'] elif self.current_system.name in ['arolla', 'tsa']: self.exclusive_access = True - self.valid_prog_environs = ['PrgEnv-gnu-nompi'] + self.valid_prog_environs = ['PrgEnv-gnu', 'PrgEnv-gnu-nompi', + 'PrgEnv-pgi', 'PrgEnv-pgi-nompi'] self.modules = ['cuda/10.1.243'] else: self.valid_prog_environs = ['PrgEnv-gnu'] diff --git a/cscs-checks/mch/gpu_direct_cuda.py b/cscs-checks/mch/gpu_direct_cuda.py index e3d4c9c9d1..7c245dca05 100644 --- a/cscs-checks/mch/gpu_direct_cuda.py +++ b/cscs-checks/mch/gpu_direct_cuda.py @@ -33,7 +33,7 @@ def __init__(self): self.build_system.cxxflags = ['-ccbin', 'mpicxx', '-arch=sm_37'] elif self.current_system.name in ['arolla', 'tsa']: self.exclusive_access = True - self.valid_prog_environs = ['PrgEnv-gnu'] + self.valid_prog_environs = ['PrgEnv-gnu', 'PrgEnv-pgi'] self.variables = { 'G2G': '1', } diff --git a/cscs-checks/prgenv/helloworld.py b/cscs-checks/prgenv/helloworld.py index 51a97b32a1..b881a527fe 100644 --- a/cscs-checks/prgenv/helloworld.py +++ b/cscs-checks/prgenv/helloworld.py @@ -5,6 +5,7 @@ from datetime import datetime +import re import reframe as rfm import reframe.utility.sanity as sn @@ -27,7 +28,8 @@ def __init__(self, variant, lang, linkage): 'arolla:pn', 'tsa:cn', 'tsa:pn'] self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-cray_classic', - 'PrgEnv-gnu', 'PrgEnv-intel', 'PrgEnv-pgi'] + 'PrgEnv-intel', 'PrgEnv-gnu', 'PrgEnv-pgi', + 'PrgEnv-gnu-nocuda', 'PrgEnv-pgi-nocuda'] if self.current_system.name in ['kesch', 'arolla', 'tsa']: self.exclusive_access = True @@ -89,7 +91,8 @@ def num_ranks(match): @rfm.run_before('compile') def setflags(self): - envname = self.current_environ.name.replace('-nompi', '') + envname = re.sub(r'(PrgEnv-\w+).*', lambda m: m.group(1), + self.current_environ.name) prgenv_flags = self.prgenv_flags[envname] self.build_system.cflags = prgenv_flags self.build_system.cxxflags = prgenv_flags @@ -121,6 +124,9 @@ class HelloWorldTestSerial(HelloWorldBaseTest): def __init__(self, lang, linkage): super().__init__('serial', lang, linkage) self.valid_systems += ['kesch:pn', 'arolla:pn', 'tsa:pn'] + self.valid_prog_environs += ['PrgEnv-gnu-nompi', 'PrgEnv-pgi-nompi', + 'PrgEnv-gnu-nompi-nocuda', + 'PrgEnf-pgi-nompi-nocuda'] self.sourcepath += '_serial.' + lang self.descr += ' Serial ' + linkage.capitalize() self.prgenv_flags = { @@ -140,7 +146,9 @@ def __init__(self, lang, linkage): elif (self.current_system.name in ['arolla', 'tsa'] and linkage == 'dynamic'): self.valid_prog_environs += ['PrgEnv-pgi-nompi', - 'PrgEnv-gnu-nompi'] + 'PrgEnv-pgi-nompi-nocuda', + 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nompi-nocuda'] @rfm.required_version('>=2.14') @@ -173,7 +181,9 @@ def __init__(self, lang, linkage): elif (self.current_system.name in ['arolla', 'tsa'] and linkage == 'dynamic'): self.valid_prog_environs += ['PrgEnv-pgi-nompi', - 'PrgEnv-gnu-nompi'] + 'PrgEnv-pgi-nompi-nocuda', + 'PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nompi-nocuda'] # On SLURM there is no need to set OMP_NUM_THREADS if one defines # num_cpus_per_task, but adding for completeness and portability diff --git a/cscs-checks/system/slurm/slurm.py b/cscs-checks/system/slurm/slurm.py index 39321e7b3b..b4597aa425 100644 --- a/cscs-checks/system/slurm/slurm.py +++ b/cscs-checks/system/slurm/slurm.py @@ -21,6 +21,7 @@ def __init__(self): 'production', 'single-node'} self.num_tasks_per_node = 1 if self.current_system.name in ['arolla', 'kesch', 'tsa']: + self.valid_prog_environs = ['PrgEnv-gnu', 'PrgEnv-pgi'] self.exclusive_access = True self.maintainers = ['RS', 'VH'] diff --git a/cscs-checks/tools/io/cdo.py b/cscs-checks/tools/io/cdo.py index 83b7852a60..9e82f66cf5 100644 --- a/cscs-checks/tools/io/cdo.py +++ b/cscs-checks/tools/io/cdo.py @@ -41,7 +41,7 @@ def __init__(self): self.modules = ['cdo'] elif self.current_system.name in ['arolla', 'tsa']: self.exclusive_access = True - self.valid_prog_environs = ['PrgEnv-gnu-nompi'] + self.valid_prog_environs = ['PrgEnv-gnu', 'PrgEnv-gnu-nompi'] self.modules = ['cdo', 'netcdf-fortran'] else: self.modules = ['CDO'] diff --git a/cscs-checks/tools/io/nco.py b/cscs-checks/tools/io/nco.py index abe9b64261..afac3a0fee 100644 --- a/cscs-checks/tools/io/nco.py +++ b/cscs-checks/tools/io/nco.py @@ -30,7 +30,8 @@ def __init__(self): 'kesch:pn', 'arolla:pn', 'tsa:pn'] if self.current_system.name in ['arolla', 'kesch', 'tsa']: self.exclusive_access = True - self.valid_prog_environs = ['PrgEnv-gnu-nompi'] + self.valid_prog_environs = ['PrgEnv-gnu-nompi', + 'PrgEnv-gnu-nompi-nocuda'] self.modules = ['nco'] else: self.modules = ['NCO']