Skip to content

Commit

Permalink
Bump version to 4.6.1, update config file, simplified logging, keep-s…
Browse files Browse the repository at this point in the history
…tage removed from config and added to command line

added braniac to tests. Updated GPU test, numpy and Gaussian test.

Added vsc tag where missing.
  • Loading branch information
Lewih committed Jun 24, 2024
1 parent b729b4d commit b735a89
Show file tree
Hide file tree
Showing 9 changed files with 142 additions and 107 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ Log files and output will be saved in $HOME/reframe

## Requirements

- Reframe 3.10.1 installed as a module
- Reframe 4.6.1 installed as a module
- Python3
129 changes: 61 additions & 68 deletions config_vsc.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,17 @@
import os
from py import builtin


antwerpen_mode_options = [
'--exec-policy=async',
'--output=/apps/antwerpen/reframe/logs/output/',
'--perflogdir=/apps/antwerpen/reframe/logs/',
'--stage=/apps/antwerpen/reframe/logs/stage/',
'--report-file=/apps/antwerpen/reframe/logs/reports/last-$VSC_INSTITUTE_CLUSTER.json',
'--compress-report',
'--nocolor']

perf_logging_format = [
'{"username": "%(osuser)s"',
'"version": "%(version)s"',
'"name": "%(check_name)s"',
'"system": "%(check_system)s"',
'"partition": "%(check_partition)s"',
'"environ": "%(check_environ)s"',
'"nodelist": "%(check_job_nodelist)s"',
'"num_tasks": "%(check_num_tasks)s"',
'"num_cpus_per_task": "%(check_num_cpus_per_task)s"',
'"num_tasks_per_node": "%(check_num_tasks_per_node)s"',
'"modules": "%(check_modules)s"',
'"jobid": "%(check_jobid)s"',
'"perf_var": "%(check_perf_var)s"',
'"perf_value": "%(check_perf_value)s"',
'"unit": "%(check_perf_unit)s"',
'"description": "%(check_descr)s"',
'"job_completion_time": "%(check_job_completion_time)s"',
'"check_result": "%(check_result)s"',
]

logging_format = perf_logging_format + ['"message": "%(message)s"', '"time": "%(asctime)s"}']
perf_logging_format[-1] += '}'
# use 'info' to log to syslog
syslog_level = 'warning'

# To run jobs on the kul cluster, you need to be a member of the following
# vsc group
kul_account_string_tier2 = '-A lpt2_vsc_test_suite'

# To run jobs on the calcua cluster, you need to be a member of the following
# vsc group
calcua_account_string_tier2 = '-A ap_calcua_staff'

# By default, not all installed modules are visible on the genius cluster
genius_modulepath = []
for version in ['2018a', '2019b', '2021a']:
Expand Down Expand Up @@ -188,26 +161,26 @@
'access': [],
'environs': ['standard'],
'descr': 'tests in the local node (no job)',
'max_jobs': 1,
'max_jobs': 10,
'launcher': 'local',
},
{
'name': 'single-node',
'scheduler': 'slurm',
'modules': [],
'access': [],
'access': [calcua_account_string_tier2],
'environs': ['standard'],
'descr': 'single-node jobs',
'max_jobs': 1,
'max_jobs': 10,
'launcher': 'local',
},
{
{
'name': 'mpi-job',
'scheduler': 'slurm',
'access': [],
'access': [calcua_account_string_tier2],
'environs': ['intel-2021a'],
'descr': 'MPI jobs',
'max_jobs': 1,
'max_jobs': 10,
# TODO Here we actually want to set vsc-mympirun, but since
# this is a custom launcher not shipped with ReFrame, we
# can only do this in the test itself after registering the
Expand All @@ -217,7 +190,7 @@
{
'name': 'nvidia',
'scheduler': 'slurm',
'access': ['-p ampere_gpu'],
'access': [calcua_account_string_tier2, '-p ampere_gpu'],
'environs': ['CUDA', 'standard'],
'descr': 'Nvidia ampere node',
'max_jobs': 1,
Expand All @@ -244,26 +217,26 @@
'access': [],
'environs': ['standard'],
'descr': 'tests in the local node (no job)',
'max_jobs': 1,
'max_jobs': 10,
'launcher': 'local',
},
{
'name': 'single-node',
'scheduler': 'slurm',
'modules': [],
'access': [],
'access': [calcua_account_string_tier2],
'environs': ['standard'],
'descr': 'single-node jobs',
'max_jobs': 1,
'max_jobs': 10,
'launcher': 'local',
},
{
'name': 'mpi-job',
'scheduler': 'slurm',
'access': [],
'access': [calcua_account_string_tier2],
'environs': ['intel-2021a'],
'descr': 'MPI jobs',
'max_jobs': 1,
'max_jobs': 10,
# TODO Here we actually want to set vsc-mympirun, but since
# this is a custom launcher not shipped with ReFrame, we
# can only do this in the test itself after registering the
Expand All @@ -273,7 +246,7 @@
{
'name': 'nvidia',
'scheduler': 'slurm',
'access': ['-p pascal_gpu'],
'access': [calcua_account_string_tier2, '-p pascal_gpu'],
'environs': ['CUDA', 'standard'],
'descr': 'Nvidia pascal nodes',
'max_jobs': 2,
Expand All @@ -287,6 +260,47 @@
}
]
},
{
'name': 'breniac',
'descr': 'VSC Tier-2 Breniac',
'hostnames': ['login.breniac'],
'modules_system': 'lmod',
'partitions': [
{
'name': 'local',
'scheduler': 'local',
'modules': [],
'access': [],
'environs': ['standard'],
'descr': 'tests in the local node (no job)',
'max_jobs': 10,
'launcher': 'local',
},
{
'name': 'single-node',
'scheduler': 'slurm',
'modules': [],
'access': [calcua_account_string_tier2],
'environs': ['standard'],
'descr': 'single-node jobs',
'max_jobs': 10,
'launcher': 'local',
},
{
'name': 'mpi-job',
'scheduler': 'slurm',
'access': [calcua_account_string_tier2],
'environs': ['intel-2021a'],
'descr': 'MPI jobs',
'max_jobs': 10,
# TODO Here we actually want to set vsc-mympirun, but since
# this is a custom launcher not shipped with ReFrame, we
# can only do this in the test itself after registering the
# vsc-mympirun launcher
'launcher': 'srun',
},
]
},
],
'environments': [
{
Expand All @@ -313,40 +327,19 @@
{
'purge_environment': True,
'resolve_module_conflicts': False, # avoid loading the module before submitting the job
'keep_stage_files': True,
}
],
'logging': [
{
'level': 'debug',
'handlers': [
{
'type': 'file',
'name': 'reframe.log',
'level': 'debug',
'format': '[%(asctime)s] %(levelname)s: %(check_name)s: %(message)s', # noqa: E501
'append': False,
},
{
'type': 'stream',
'name': 'stdout',
'level': 'info',
'format': '%(message)s',
},
{
'type': 'file',
'name': 'reframe.out',
'level': 'info',
'format': '%(message)s',
'append': False,
},
],
}
],
'modes': [
{
'name': 'UAstandard',
'options': antwerpen_mode_options,
},
]
}
}
4 changes: 2 additions & 2 deletions run.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module load ReFrame/4.2.0
module load ReFrame/4.6.1

export RFM_CONFIG_FILES=$(dirname $0)/config_vsc.py
export RFM_CHECK_SEARCH_PATH=$(dirname $0)/tests
Expand All @@ -7,5 +7,5 @@ export RFM_PREFIX=$VSC_SCRATCH/reframe
export RFM_CHECK_SEARCH_RECURSIVE=true
export RFM_SAVE_LOG_FILES=true

reframe --run "$@"
reframe --keep-stage-files --run "$@"
#rm $(dirname $0)/reframe.out $(dirname $0)/reframe.log
6 changes: 3 additions & 3 deletions tests/apps/gaussian/gaussian.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ def __init__(self):
'time': (
sn.extractsingle(
r'^real\t(?P<minutes>\S+)m\S+s',
'rfm_GaussianCPUTest_job.err', 'minutes', float) +
self.stderr, 'minutes', float) +
sn.extractsingle(
r'^real\t\S+m(?P<seconds>\S+)s',
'rfm_GaussianCPUTest_job.err', 'seconds', float) / 60.0)
self.stderr, 'seconds', float) / 60.0)
}

self.maintainers = ['Lewih']
Expand All @@ -45,7 +45,7 @@ def __init__(self):
},

}
self.tags = {'apps', 'gaussian', 'performance'}
self.tags = {'apps', 'gaussian', 'performance', 'vsc'}


@run_after('setup')
Expand Down
7 changes: 6 additions & 1 deletion tests/apps/julia/julia-linalg.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def __init__(self):
self.modules = ['Julia']
self.executable = 'julia'
self.executable_opts = ['linalg.jl']
self.tags = {'apps', 'julia', '1nodes', 'performance'}
self.tags = {'apps', 'julia', '1nodes', 'performance', 'vsc'}
self.maintainers = ['Lewih']
self.time_limit = '10m'

Expand Down Expand Up @@ -50,6 +50,11 @@ def __init__(self):
'cholesky': (0.57, None, 0.1, 'seconds'),
'lu': (0.31, None, 0.1, 'seconds'),
},
'breniac:single-node': {
'dot': (0.47, None, 0.1, 'seconds'),
'cholesky': (0.57, None, 0.1, 'seconds'),
'lu': (0.31, None, 0.1, 'seconds'),
},
'hortense:single-node': {
'dot': (0.44, None, 0.1, 'seconds'),
'cholesky': (0.47, None, 0.1, 'seconds'),
Expand Down
10 changes: 8 additions & 2 deletions tests/apps/matlab/matlab-linalg.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def __init__(self):
self.executable = 'cat'
self.executable_opts = ['linalg.m | matlab -nodesktop -nosplash']
self.num_tasks_per_node = 1
self.tags = {'apps', 'matlab', 'performance'}
self.tags = {'apps', 'matlab', 'performance', 'vsc'}
self.maintainers = ['Lewih']


Expand All @@ -40,6 +40,7 @@ def __init__(self):
super().__init__()
self.valid_systems = ['leibniz:single-node',
'vaughan:single-node',
'breniac:single-node',
'hydra:single-node',
'genius:single-node']

Expand All @@ -54,6 +55,11 @@ def __init__(self):
'cholesky': (0.06, None, 0.10, 'seconds'),
'lu': (0.18, None, 0.10, 'seconds'),
},
'breniac:single-node': {
'dot': (0.28, None, 0.10, 'seconds'),
'cholesky': (0.06, None, 0.10, 'seconds'),
'lu': (0.24, None, 0.10, 'seconds'),
},
'genius:single-node': {
'dot': (0.14, None, 0.10, 'seconds'),
'cholesky': (0.05, None, 0.10, 'seconds'),
Expand All @@ -68,7 +74,7 @@ def __init__(self):

@run_after('setup')
def set_num_cpus(self):
if self.current_system.name == 'leibniz':
if self.current_system.name in ['leibniz', 'breniac']:
self.num_cpus_per_task = 28
elif self.current_system.name == 'vaughan':
self.num_cpus_per_task = 32
Expand Down
8 changes: 6 additions & 2 deletions tests/apps/namd/namd_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def __init__(self, arch):

self.maintainers = ['Lewih']

self.tags = {'apps', 'namd', 'performance'}
self.tags = {'apps', 'namd', 'performance', 'vsc'}
self.tags.add(f'{self.num_nodes}nodes')

@run_before('run')
Expand Down Expand Up @@ -109,6 +109,7 @@ def __init__(self):

self.valid_systems = ['leibniz:single-node',
'vaughan:single-node',
'breniac:single-node',
'genius:single-node',
'hydra:single-node']

Expand All @@ -119,18 +120,21 @@ def __init__(self):
'1': {
'leibniz:single-node': {'days_ns': (0.347779, None, 0.05, 'days/ns')},
'vaughan:single-node': {'days_ns': (0.188093, None, 0.05, 'days/ns')},
'breniac:single-node': {'days_ns': (0.8281605, None, 0.05, 'days/ns')},
'hydra:single-node': {'days_ns': (0.202701, None, 0.05, 'days/ns')},
'genius:single-node': {'days_ns': (0.210896, None, 0.05, 'days/ns')},
},
'2': {
'leibniz:single-node': {'days_ns': (0.1782715, None, 0.05, 'days/ns')},
'vaughan:single-node': {'days_ns': (0.09856985, None, 0.05, 'days/ns')},
'breniac:single-node': {'days_ns': (0.1459575, None, 0.05, 'days/ns')},
'hydra:single-node': {'days_ns': (0.1099565, None, 0.05, 'days/ns')},
'genius:single-node': {'days_ns': (0.1151855, None, 0.05, 'days/ns')},
},
'4': {
'leibniz:single-node': {'days_ns': (1.05726, None, 0.05, 'days/ns')},
'vaughan:single-node': {'days_ns': (0.5438339, None, 0.05, 'days/ns')},
'breniac:single-node': {'days_ns': (0.8281605, None, 0.05, 'days/ns')},
'hydra:single-node': {'days_ns': (0.5427335, None, 0.05, 'days/ns')},
'genius:single-node': {'days_ns': (0.565824, None, 0.05, 'days/ns')},
},
Expand All @@ -144,7 +148,7 @@ def set_num_cpus(self):
configFile = self.download_material()

# VSC specific config
if self.current_system.name == 'leibniz':
if self.current_system.name in ['leibniz', 'breniac']:
self.num_cpus_per_task = 28
self.modules = ['NAMD/2.14-verbs']
launcher = 'charm_antwerp'
Expand Down
Loading

0 comments on commit b735a89

Please sign in to comment.