From b735a8997cac981df59a0d05cbb429b46968ae0f Mon Sep 17 00:00:00 2001 From: Michele Pugno Date: Tue, 19 Mar 2024 15:02:48 +0100 Subject: [PATCH 1/5] Bump version to 4.6.1, update config file, simplified logging, keep-stage removed from config and added to command line added braniac to tests. Updated GPU test, numpy and Gaussian test. Added vsc tag where missing. --- README.md | 2 +- config_vsc.py | 129 ++++++++++++++--------------- run.sh | 4 +- tests/apps/gaussian/gaussian.py | 6 +- tests/apps/julia/julia-linalg.py | 7 +- tests/apps/matlab/matlab-linalg.py | 10 ++- tests/apps/namd/namd_test.py | 8 +- tests/apps/python/numpy_check.py | 43 ++++++++-- tests/gpu/gpu_burn.py | 40 ++++----- 9 files changed, 142 insertions(+), 107 deletions(-) diff --git a/README.md b/README.md index a0d4f9f..09c168b 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/config_vsc.py b/config_vsc.py index 5941212..f15239c 100644 --- a/config_vsc.py +++ b/config_vsc.py @@ -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']: @@ -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 @@ -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, @@ -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 @@ -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, @@ -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': [ { @@ -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, - }, - ] -} \ No newline at end of file +} diff --git a/run.sh b/run.sh index 3182816..35e1ad6 100755 --- a/run.sh +++ b/run.sh @@ -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 @@ -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 diff --git a/tests/apps/gaussian/gaussian.py b/tests/apps/gaussian/gaussian.py index 03b5ac2..d2b0a88 100644 --- a/tests/apps/gaussian/gaussian.py +++ b/tests/apps/gaussian/gaussian.py @@ -16,10 +16,10 @@ def __init__(self): 'time': ( sn.extractsingle( r'^real\t(?P\S+)m\S+s', - 'rfm_GaussianCPUTest_job.err', 'minutes', float) + + self.stderr, 'minutes', float) + sn.extractsingle( r'^real\t\S+m(?P\S+)s', - 'rfm_GaussianCPUTest_job.err', 'seconds', float) / 60.0) + self.stderr, 'seconds', float) / 60.0) } self.maintainers = ['Lewih'] @@ -45,7 +45,7 @@ def __init__(self): }, } - self.tags = {'apps', 'gaussian', 'performance'} + self.tags = {'apps', 'gaussian', 'performance', 'vsc'} @run_after('setup') diff --git a/tests/apps/julia/julia-linalg.py b/tests/apps/julia/julia-linalg.py index 384453b..8516509 100644 --- a/tests/apps/julia/julia-linalg.py +++ b/tests/apps/julia/julia-linalg.py @@ -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' @@ -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'), diff --git a/tests/apps/matlab/matlab-linalg.py b/tests/apps/matlab/matlab-linalg.py index aac7b73..79cab3a 100644 --- a/tests/apps/matlab/matlab-linalg.py +++ b/tests/apps/matlab/matlab-linalg.py @@ -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'] @@ -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'] @@ -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'), @@ -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 diff --git a/tests/apps/namd/namd_test.py b/tests/apps/namd/namd_test.py index 1b7c3fc..60b79d6 100644 --- a/tests/apps/namd/namd_test.py +++ b/tests/apps/namd/namd_test.py @@ -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') @@ -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'] @@ -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')}, }, @@ -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' diff --git a/tests/apps/python/numpy_check.py b/tests/apps/python/numpy_check.py index 788ebd7..d3b14c0 100644 --- a/tests/apps/python/numpy_check.py +++ b/tests/apps/python/numpy_check.py @@ -35,25 +35,47 @@ def __init__(self): self.executable = 'python3' self.executable_opts = ['np_ops.py'] # self.use_multithreading = False - self.tags = {'apps', 'python', 'performance'} + self.tags = {'apps', 'python', 'numpy', 'performance', 'vsc'} self.maintainers = ['Lewih'] self.valid_systems = ['*:single-node'] self.reference = { + # old references with intel + # 'vaughan:single-node': { + # 'dot': (0.7, None, 0.10, 'seconds'), + # 'svd': (0.6, None, 0.10, 'seconds'), + # 'cholesky': (0.28, None, 0.10, 'seconds'), + # 'eigendec': (7.0, None, 0.10, 'seconds'), + # 'inv': (0.40, None, 0.10, 'seconds'), + # }, + # 'leibniz:single-node': { + # 'dot': (0.72, None, 0.10, 'seconds'), + # 'svd': (0.42, None, 0.10, 'seconds'), + # 'cholesky': (0.1, None, 0.10, 'seconds'), + # 'eigendec': (4.3, None, 0.10, 'seconds'), + # 'inv': (0.25, None, 0.10, 'seconds'), + # }, 'vaughan:single-node': { - 'dot': (0.7, None, 0.10, 'seconds'), - 'svd': (0.6, None, 0.10, 'seconds'), - 'cholesky': (0.28, None, 0.10, 'seconds'), - 'eigendec': (7.0, None, 0.10, 'seconds'), - 'inv': (0.40, None, 0.10, 'seconds'), + 'dot': (0.84, None, 0.10, 'seconds'), + 'svd': (1.48, None, 0.10, 'seconds'), + 'cholesky': (0.57, None, 0.10, 'seconds'), + 'eigendec': (13.06, None, 0.10, 'seconds'), + 'inv': (0.73, None, 0.10, 'seconds'), }, 'leibniz:single-node': { - 'dot': (0.72, None, 0.10, 'seconds'), - 'svd': (0.42, None, 0.10, 'seconds'), + 'dot': (0.87, None, 0.10, 'seconds'), + 'svd': (1.0, None, 0.10, 'seconds'), 'cholesky': (0.1, None, 0.10, 'seconds'), - 'eigendec': (4.3, None, 0.10, 'seconds'), + 'eigendec': (7, None, 0.10, 'seconds'), 'inv': (0.25, None, 0.10, 'seconds'), }, + 'breniac:single-node': { + 'dot': (0.7, None, 0.10, 'seconds'), + 'svd': (0.81, None, 0.10, 'seconds'), + 'cholesky': (0.28, None, 0.10, 'seconds'), + 'eigendec': (7.0, None, 0.10, 'seconds'), + 'inv': (0.40, None, 0.10, 'seconds'), + }, 'genius:single-node': { 'dot': (0.7, None, 0.10, 'seconds'), 'svd': (0.6, None, 0.10, 'seconds'), @@ -91,3 +113,6 @@ def set_num_cpus(self): elif self.current_system.name == "hortense": self.modules = ["SciPy-bundle/2021.10-foss-2021b"] self.job.options = ["--exclusive"] + elif self.current_system.name in ["leibniz", "vaughan", "breniac"]: + self.modules = ["SciPy-bundle/2021.05-foss-2021a"] + self.job.options = ["--exclusive"] diff --git a/tests/gpu/gpu_burn.py b/tests/gpu/gpu_burn.py index 071a6e8..454a454 100644 --- a/tests/gpu/gpu_burn.py +++ b/tests/gpu/gpu_burn.py @@ -12,21 +12,22 @@ class GPU_Burn_nvidia(rfm.RunOnlyRegressionTest): time_limit = '10m' prerun_cmds = ['git clone https://github.com/wilicc/gpu-burn.git', 'cd gpu-burn', 'make'] executable = '--output=rfm_GPUBURN_nvidia_node-%N.out ./gpu_burn 20' - tags = {"gpu", "burn", "performance"} + tags = {"gpu", "burn", "performance", "vsc"} num_devices = 0 num_tasks_per_node = 1 + # no upper bound, keep lower bound for reference reference = { 'vaughan:nvidia': { - 'device0_nvam1': (17339.0, -0.05, 0.05, 'Gflop/s'), - 'device1_nvam1': (17336.0, -0.05, 0.05, 'Gflop/s'), - 'device2_nvam1': (17340.0, -0.05, 0.05, 'Gflop/s'), - 'device3_nvam1': (17335.0, -0.05, 0.05, 'Gflop/s'), + 'nvam1_device0': (17339.0, -0.05, None, 'Gflop/s'), + 'nvam1_device1': (17336.0, -0.05, None, 'Gflop/s'), + 'nvam1_device2': (17340.0, -0.05, None, 'Gflop/s'), + 'nvam1_device3': (17335.0, -0.05, None, 'Gflop/s'), }, 'leibniz:nvidia': { - 'device0_nvpa1': (7412.0, -0.05, 0.05, 'Gflop/s'), - 'device1_nvpa1': (7412.0, -0.05, 0.05, 'Gflop/s'), - 'device0_nvpa2': (7412.0, -0.05, 0.05, 'Gflop/s'), - 'device1_nvpa2': (7412.0, -0.05, 0.05, 'Gflop/s'), + 'nvpa1_device0': (7412.0, -0.05, None, 'Gflop/s'), + 'nvpa1_device1': (7412.0, -0.05, None, 'Gflop/s'), + 'nvpa2_device0': (7412.0, -0.05, None, 'Gflop/s'), + 'nvpa2_device1': (7412.0, -0.05, None, 'Gflop/s'), } } @@ -47,22 +48,23 @@ def assert_job(self): result = True for n in sorted(self.job.nodelist): node = n.split('.')[0] - result = sn.and_(sn.and_(sn.assert_found(r'OK', f'gpu-burn/rfm_GPUBURN_nvidia_node-{node}.out'), sn.assert_not_found(r'FAULTY', f'gpu-burn/rfm_GPUBURN_nvidia_node-{node}.out')), result) - + result = sn.and_(sn.and_(sn.assert_found(r'OK', self.stagedir+f'/gpu-burn/rfm_GPUBURN_nvidia_node-{node}.out'), sn.assert_not_found(r'FAULTY', self.stagedir+f'/gpu-burn/rfm_GPUBURN_nvidia_node-{node}.out')), result) return result @performance_function('Gflop/s') def get_gflops(self, device=0, node=None): - return sn.extractsingle(r'\((?P\S+) Gflop/s\)', f'gpu-burn/rfm_GPUBURN_nvidia_node-{node}.out', 'gflops', float, item=(-device-1)) + # take starting from item -1 (last match) + return sn.extractsingle(r'\((?P\S+) Gflop/s\)', self.stagedir+f'/gpu-burn/rfm_GPUBURN_nvidia_node-{node}.out', 'gflops', float, item=(-device-1)) @run_before('performance') def set_perf_variables(self): '''Build the dictionary with all the performance variables.''' self.perf_variables = {} - - for n in self.job.nodelist: - node =n.split('.')[0] - device = 0 - for x in range(self.num_devices): - self.perf_variables[f'device{device}_{node}'] = self.get_gflops(device=self.num_devices-device, node=node) - device += 1 + # for dry runs, check if nodelist is empty + if self.job.nodelist: + for n in self.job.nodelist: + node =n.split('.')[0] + device = 0 + for x in range(self.num_devices): + self.perf_variables[f'{node}_device{self.num_devices-device-1}'] = self.get_gflops(device=self.num_devices-device, node=node) + device += 1 From 290fd0b22b347169b9d4169da401a671ad11925f Mon Sep 17 00:00:00 2001 From: Michele Pugno Date: Tue, 25 Jun 2024 14:37:13 +0200 Subject: [PATCH 2/5] Update config file. rename single-node to default-node --- config_vsc.py | 48 +++++++++++++++++-------- tests/apps/gaussian/gaussian.py | 12 +++---- tests/apps/julia/julia-linalg.py | 14 ++++---- tests/apps/matlab/matlab-linalg.py | 20 +++++------ tests/apps/namd/namd_test.py | 56 +++++++++++++++--------------- tests/apps/python/numpy_check.py | 18 +++++----- tests/cue/env.py | 2 +- tests/cue/job.py | 4 +-- tests/cue/shared_fs.py | 6 ++-- tests/cue/src/tools_list.py | 2 +- tests/micro/basic/hellojob.py | 2 +- 11 files changed, 102 insertions(+), 82 deletions(-) diff --git a/config_vsc.py b/config_vsc.py index f15239c..21e653c 100644 --- a/config_vsc.py +++ b/config_vsc.py @@ -47,12 +47,12 @@ 'launcher': 'local', }, { - 'name': 'single-node', + 'name': 'default-node', 'scheduler': 'slurm', 'modules': [], 'access': [], 'environs': ['standard'], - 'descr': 'single-node jobs', + 'descr': 'default-node jobs', 'max_jobs': 1, 'launcher': 'local', }, @@ -84,12 +84,12 @@ 'launcher': 'local', }, { - 'name': 'single-node', + 'name': 'default-node', 'scheduler': 'slurm', 'modules': [], 'access': [hortense_access_flag], 'environs': ['standard'], - 'descr': 'single-node jobs', + 'descr': 'default-node jobs', 'max_jobs': 1, 'launcher': 'local', }, @@ -126,12 +126,12 @@ 'env_vars': [['MODULEPATH', ':'.join(genius_modulepath)]], }, { - 'name': 'single-node', + 'name': 'default-node', 'scheduler': 'torque', 'modules': [], 'access': [kul_account_string_tier2], 'environs': ['standard'], - 'descr': 'single-node jobs', + 'descr': 'default-node jobs', 'max_jobs': 1, 'launcher': 'local', 'env_vars': [['MODULEPATH', ':'.join(genius_modulepath)]], @@ -165,12 +165,32 @@ 'launcher': 'local', }, { - 'name': 'single-node', + 'name': 'default-node', 'scheduler': 'slurm', 'modules': [], 'access': [calcua_account_string_tier2], 'environs': ['standard'], - 'descr': 'single-node jobs', + 'descr': 'default-node jobs', + 'max_jobs': 10, + 'launcher': 'local', + }, + { + 'name': 'zen2', + 'scheduler': 'slurm', + 'modules': [], + 'access': [calcua_account_string_tier2, '-p zen2'], + 'environs': ['standard'], + 'descr': 'default-node jobs', + 'max_jobs': 10, + 'launcher': 'local', + }, + { + 'name': 'zen3', + 'scheduler': 'slurm', + 'modules': [], + 'access': [calcua_account_string_tier2, '-p zen3'], + 'environs': ['standard'], + 'descr': 'default-node jobs', 'max_jobs': 10, 'launcher': 'local', }, @@ -221,12 +241,12 @@ 'launcher': 'local', }, { - 'name': 'single-node', + 'name': 'default-node', 'scheduler': 'slurm', 'modules': [], 'access': [calcua_account_string_tier2], 'environs': ['standard'], - 'descr': 'single-node jobs', + 'descr': 'default-node jobs', 'max_jobs': 10, 'launcher': 'local', }, @@ -277,12 +297,12 @@ 'launcher': 'local', }, { - 'name': 'single-node', + 'name': 'default-node', 'scheduler': 'slurm', 'modules': [], 'access': [calcua_account_string_tier2], 'environs': ['standard'], - 'descr': 'single-node jobs', + 'descr': 'default-node jobs', 'max_jobs': 10, 'launcher': 'local', }, @@ -310,7 +330,7 @@ 'ftn': 'mpif90', 'modules': ['foss/2021a'],}, { 'name': 'intel-2021a', - 'modules': ['intel'], + 'modules': ['intel/2021a'], 'cc': 'mpiicc', 'cxx': 'mpiicpc', 'ftn': 'mpiifort', @@ -325,7 +345,7 @@ ], 'general': [ { - 'purge_environment': True, + 'purge_environment': False, 'resolve_module_conflicts': False, # avoid loading the module before submitting the job } ], diff --git a/tests/apps/gaussian/gaussian.py b/tests/apps/gaussian/gaussian.py index d2b0a88..e58e707 100644 --- a/tests/apps/gaussian/gaussian.py +++ b/tests/apps/gaussian/gaussian.py @@ -29,18 +29,18 @@ def __init__(self): class GaussianCPUTest(GaussianBaseTest): def __init__(self): super().__init__() - self.valid_systems = ['leibniz:single-node', - 'vaughan:single-node', - 'hydra:single-node'] + self.valid_systems = ['leibniz:default-node', + 'vaughan:default-node', + 'hydra:default-node'] self.reference = { - 'leibniz:single-node': { + 'leibniz:default-node': { 'time': (33.0, None, 0.05, 'minutes'), }, - 'vaughan:single-node': { + 'vaughan:default-node': { 'time': (15.0, None, 0.05, 'minutes'), }, - 'hydra:single-node': { + 'hydra:default-node': { 'time': (21.5, None, 0.05, 'minutes'), }, diff --git a/tests/apps/julia/julia-linalg.py b/tests/apps/julia/julia-linalg.py index 8516509..ea9bdc5 100644 --- a/tests/apps/julia/julia-linalg.py +++ b/tests/apps/julia/julia-linalg.py @@ -20,7 +20,7 @@ class JuliaLinalgTest(JuliaLinalgBaseTest): def __init__(self): super().__init__() self.descr = 'Test a few typical Julia LinAlg operations' - self.valid_systems = ['*:single-node'] + self.valid_systems = ['*:default-node'] self.num_tasks_per_node = 1 self.num_cpus_per_task = 20 self.tags.add('performance') @@ -40,32 +40,32 @@ def __init__(self): self.stdout, 'lu', float), } self.reference = { - 'leibniz:single-node': { + 'leibniz:default-node': { 'dot': (0.30, None, 0.1, 'seconds'), 'cholesky': (0.22, None, 0.1, 'seconds'), 'lu': (0.28, None, 0.1, 'seconds'), }, - 'vaughan:single-node': { + 'vaughan:default-node': { 'dot': (0.47, None, 0.1, 'seconds'), 'cholesky': (0.57, None, 0.1, 'seconds'), 'lu': (0.31, None, 0.1, 'seconds'), }, - 'breniac:single-node': { + 'breniac:default-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': { + 'hortense:default-node': { 'dot': (0.44, None, 0.1, 'seconds'), 'cholesky': (0.47, None, 0.1, 'seconds'), 'lu': (0.49, None, 0.1, 'seconds'), }, - 'hydra:single-node': { + 'hydra:default-node': { 'dot': (0.15, None, 0.1, 'seconds'), 'cholesky': (0.22, None, 0.1, 'seconds'), 'lu': (0.30, None, 0.1, 'seconds'), }, - 'genius:single-node': { + 'genius:default-node': { 'dot': (0.15, None, 0.1, 'seconds'), 'cholesky': (0.21, None, 0.1, 'seconds'), 'lu': (0.18, None, 0.1, 'seconds'), diff --git a/tests/apps/matlab/matlab-linalg.py b/tests/apps/matlab/matlab-linalg.py index 79cab3a..2cccbbb 100644 --- a/tests/apps/matlab/matlab-linalg.py +++ b/tests/apps/matlab/matlab-linalg.py @@ -38,34 +38,34 @@ def __init__(self): class MatlabLinalgTest(MatlabLinalgBaseTest): def __init__(self): super().__init__() - self.valid_systems = ['leibniz:single-node', - 'vaughan:single-node', - 'breniac:single-node', - 'hydra:single-node', - 'genius:single-node'] + self.valid_systems = ['leibniz:default-node', + 'vaughan:default-node', + 'breniac:default-node', + 'hydra:default-node', + 'genius:default-node'] self.reference = { - 'leibniz:single-node': { + 'leibniz:default-node': { 'dot': (0.34, None, 0.05, 'seconds'), 'cholesky': (0.05, None, 0.05, 'seconds'), 'lu': (0.18, None, 0.05, 'seconds'), }, - 'vaughan:single-node': { + 'vaughan:default-node': { 'dot': (0.28, None, 0.10, 'seconds'), 'cholesky': (0.06, None, 0.10, 'seconds'), 'lu': (0.18, None, 0.10, 'seconds'), }, - 'breniac:single-node': { + 'breniac:default-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': { + 'genius:default-node': { 'dot': (0.14, None, 0.10, 'seconds'), 'cholesky': (0.05, None, 0.10, 'seconds'), 'lu': (0.29, None, 0.10, 'seconds'), }, - 'hydra:single-node': { + 'hydra:default-node': { 'dot': (0.14, None, 0.10, 'seconds'), 'cholesky': (0.05, None, 0.10, 'seconds'), 'lu': (0.20, None, 0.10, 'seconds'), diff --git a/tests/apps/namd/namd_test.py b/tests/apps/namd/namd_test.py index 60b79d6..a2621b6 100644 --- a/tests/apps/namd/namd_test.py +++ b/tests/apps/namd/namd_test.py @@ -60,23 +60,23 @@ def __init__(self): self.tags.add('smp') self.time_limit = '20m' - self.valid_systems = ['leibniz:single-node', - 'vaughan:single-node'] + self.valid_systems = ['leibniz:default-node', + 'vaughan:default-node'] self.valid_prog_environs = ['standard'] super().__init__('cpu') self.scale_reference = { '1': { - 'leibniz:single-node': {'days_ns': (0.345, None, 0.05, 'days/ns')}, - 'vaughan:single-node': {'days_ns': (0.1991375, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (0.345, None, 0.05, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.1991375, None, 0.05, 'days/ns')}, }, '2': { - 'leibniz:single-node': {'days_ns': (0.24671949, None, 0.05, 'days/ns')}, - 'vaughan:single-node': {'days_ns': (0.1601965, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (0.24671949, None, 0.05, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.1601965, None, 0.05, 'days/ns')}, }, '4': { - 'leibniz:single-node': {'days_ns': (1.317, None, 0.05, 'days/ns')}, - 'vaughan:single-node': {'days_ns': (0.7218169, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (1.317, None, 0.05, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.7218169, None, 0.05, 'days/ns')}, }, } self.reference = self.scale_reference[self.num_nodes] @@ -107,36 +107,36 @@ class Namd_NotSMP_CPUTest(NamdBaseTest): def __init__(self): self.time_limit = '20m' - self.valid_systems = ['leibniz:single-node', - 'vaughan:single-node', - 'breniac:single-node', - 'genius:single-node', - 'hydra:single-node'] + self.valid_systems = ['leibniz:default-node', + 'vaughan:default-node', + 'breniac:default-node', + 'genius:default-node', + 'hydra:default-node'] self.valid_prog_environs = ['standard'] super().__init__('cpu') self.scale_reference = { '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')}, + 'leibniz:default-node': {'days_ns': (0.347779, None, 0.05, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.188093, None, 0.05, 'days/ns')}, + 'breniac:default-node': {'days_ns': (0.8281605, None, 0.05, 'days/ns')}, + 'hydra:default-node': {'days_ns': (0.202701, None, 0.05, 'days/ns')}, + 'genius:default-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')}, + 'leibniz:default-node': {'days_ns': (0.1782715, None, 0.05, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.09856985, None, 0.05, 'days/ns')}, + 'breniac:default-node': {'days_ns': (0.1459575, None, 0.05, 'days/ns')}, + 'hydra:default-node': {'days_ns': (0.1099565, None, 0.05, 'days/ns')}, + 'genius:default-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')}, + 'leibniz:default-node': {'days_ns': (1.05726, None, 0.05, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.5438339, None, 0.05, 'days/ns')}, + 'breniac:default-node': {'days_ns': (0.8281605, None, 0.05, 'days/ns')}, + 'hydra:default-node': {'days_ns': (0.5427335, None, 0.05, 'days/ns')}, + 'genius:default-node': {'days_ns': (0.565824, None, 0.05, 'days/ns')}, }, } self.reference = self.scale_reference[self.num_nodes] diff --git a/tests/apps/python/numpy_check.py b/tests/apps/python/numpy_check.py index d3b14c0..854f8ca 100644 --- a/tests/apps/python/numpy_check.py +++ b/tests/apps/python/numpy_check.py @@ -37,60 +37,60 @@ def __init__(self): # self.use_multithreading = False self.tags = {'apps', 'python', 'numpy', 'performance', 'vsc'} self.maintainers = ['Lewih'] - self.valid_systems = ['*:single-node'] + self.valid_systems = ['*:default-node'] self.reference = { # old references with intel - # 'vaughan:single-node': { + # 'vaughan:default-node': { # 'dot': (0.7, None, 0.10, 'seconds'), # 'svd': (0.6, None, 0.10, 'seconds'), # 'cholesky': (0.28, None, 0.10, 'seconds'), # 'eigendec': (7.0, None, 0.10, 'seconds'), # 'inv': (0.40, None, 0.10, 'seconds'), # }, - # 'leibniz:single-node': { + # 'leibniz:default-node': { # 'dot': (0.72, None, 0.10, 'seconds'), # 'svd': (0.42, None, 0.10, 'seconds'), # 'cholesky': (0.1, None, 0.10, 'seconds'), # 'eigendec': (4.3, None, 0.10, 'seconds'), # 'inv': (0.25, None, 0.10, 'seconds'), # }, - 'vaughan:single-node': { + 'vaughan:default-node': { 'dot': (0.84, None, 0.10, 'seconds'), 'svd': (1.48, None, 0.10, 'seconds'), 'cholesky': (0.57, None, 0.10, 'seconds'), 'eigendec': (13.06, None, 0.10, 'seconds'), 'inv': (0.73, None, 0.10, 'seconds'), }, - 'leibniz:single-node': { + 'leibniz:default-node': { 'dot': (0.87, None, 0.10, 'seconds'), 'svd': (1.0, None, 0.10, 'seconds'), 'cholesky': (0.1, None, 0.10, 'seconds'), 'eigendec': (7, None, 0.10, 'seconds'), 'inv': (0.25, None, 0.10, 'seconds'), }, - 'breniac:single-node': { + 'breniac:default-node': { 'dot': (0.7, None, 0.10, 'seconds'), 'svd': (0.81, None, 0.10, 'seconds'), 'cholesky': (0.28, None, 0.10, 'seconds'), 'eigendec': (7.0, None, 0.10, 'seconds'), 'inv': (0.40, None, 0.10, 'seconds'), }, - 'genius:single-node': { + 'genius:default-node': { 'dot': (0.7, None, 0.10, 'seconds'), 'svd': (0.6, None, 0.10, 'seconds'), 'cholesky': (0.15, None, 0.10, 'seconds'), 'eigendec': (7.0, None, 0.10, 'seconds'), 'inv': (0.30, None, 0.10, 'seconds'), }, - 'hydra:single-node': { + 'hydra:default-node': { 'dot': (0.42, None, 0.10, 'seconds'), 'svd': (0.64, None, 0.10, 'seconds'), 'cholesky': (0.14, None, 0.10, 'seconds'), 'eigendec': (5.20, None, 0.10, 'seconds'), 'inv': (0.24, None, 0.10, 'seconds'), }, - 'hortense:single-node': { + 'hortense:default-node': { 'dot': (0.62, None, 0.10, 'seconds'), 'svd': (1.38, None, 0.10, 'seconds'), 'cholesky': (0.4, None, 0.10, 'seconds'), diff --git a/tests/cue/env.py b/tests/cue/env.py index 1c9e6c4..628a16b 100644 --- a/tests/cue/env.py +++ b/tests/cue/env.py @@ -10,7 +10,7 @@ class VSCEnvTest(rfm.RunOnlyRegressionTest): descr = "test environment variable " envar = parameter(envars.keys()) - valid_systems = ["*:local", "*:single-node"] + valid_systems = ["*:local", "*:default-node"] valid_prog_environs = ["standard"] time_limit = '10m' num_tasks = 1 diff --git a/tests/cue/job.py b/tests/cue/job.py index 430e788..018fc52 100644 --- a/tests/cue/job.py +++ b/tests/cue/job.py @@ -8,7 +8,7 @@ @rfm.simple_test class JobCleanEnvTest(rfm.RunOnlyRegressionTest): descr = "test that job starts in a clean environment" - valid_systems = ["*:single-node"] + valid_systems = ["*:default-node"] valid_prog_environs = ["standard"] time_limit = '10m' num_tasks = 1 @@ -26,7 +26,7 @@ def assert_env(self): @rfm.simple_test class JobSrunCopyEnvTest(rfm.RunOnlyRegressionTest): descr = "test that srun inside job copies the job environment into the task environment" - valid_systems = ["*:single-node"] + valid_systems = ["*:default-node"] valid_prog_environs = ["standard"] time_limit = '10m' num_tasks = 1 diff --git a/tests/cue/shared_fs.py b/tests/cue/shared_fs.py index e996245..0c147fb 100644 --- a/tests/cue/shared_fs.py +++ b/tests/cue/shared_fs.py @@ -12,7 +12,7 @@ class VSCSharedFSMountTest(rfm.RunOnlyRegressionTest): descr = "test shared filesystem mount point " fs = parameter(shared_fs.keys()) site = parameter(shared_fs_sites) - valid_systems = ["*:local", "*:single-node"] + valid_systems = ["*:local", "*:default-node"] valid_prog_environs = ["standard"] maintainers = ['rverschoren'] time_limit = '10m' @@ -38,7 +38,7 @@ class VSCSharedFSMode(rfm.RunOnlyRegressionTest): descr = "test shared filesystem mode " fs = parameter(shared_fs.keys()) site = parameter(shared_fs_sites) - valid_systems = ["*:local", "*:single-node"] + valid_systems = ["*:local", "*:default-node"] valid_prog_environs = ["standard"] maintainers = ['rverschoren'] time_limit = '10m' @@ -71,7 +71,7 @@ class VSCSharedFSAccountDir(rfm.RunOnlyRegressionTest): if 'envar' in shared_fs[x].keys(): targets += [x] fs = parameter(targets) - valid_systems = ["*:local", "*:single-node"] + valid_systems = ["*:local", "*:default-node"] valid_prog_environs = ["standard"] maintainers = ['rverschoren'] time_limit = '10m' diff --git a/tests/cue/src/tools_list.py b/tests/cue/src/tools_list.py index e3a0368..0d7ef43 100644 --- a/tests/cue/src/tools_list.py +++ b/tests/cue/src/tools_list.py @@ -1,4 +1,4 @@ -standard_partitions_tool_test = ["*:local", "*:single-node"] +standard_partitions_tool_test = ["*:local", "*:default-node"] tools = { diff --git a/tests/micro/basic/hellojob.py b/tests/micro/basic/hellojob.py index 2941479..4646e94 100644 --- a/tests/micro/basic/hellojob.py +++ b/tests/micro/basic/hellojob.py @@ -5,7 +5,7 @@ @rfm.simple_test class VSCJobTest(rfm.RunOnlyRegressionTest): descr = "test running job" - valid_systems = ["*:single-node"] + valid_systems = ["*:default-node"] valid_prog_environs = ["standard"] time_limit = '10m' num_tasks = 1 From eab3132cfe6fd8362b43638de7e81b1e748e7bec Mon Sep 17 00:00:00 2001 From: vsc20641 Date: Thu, 27 Jun 2024 10:31:41 +0200 Subject: [PATCH 3/5] gpuburn update --- tests/gpu/gpu_burn.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/gpu/gpu_burn.py b/tests/gpu/gpu_burn.py index 454a454..f0d3050 100644 --- a/tests/gpu/gpu_burn.py +++ b/tests/gpu/gpu_burn.py @@ -36,9 +36,11 @@ def set_options(self): if self.current_system.name == 'vaughan': self.num_devices = 4 self.num_tasks = 1 + self.num_cpus_per_task = 64 if self.current_system.name == 'leibniz': self.num_devices = 2 self.num_tasks = 2 + self.num_cpus_per_task = 28 self.extra_resources = {'gpu': {'num_gpus': str(self.num_devices)}} self.descr = f'Nvidia gpu burn test on {self.current_system.name} with {self.num_devices} gpus' From a5c9779b933fef51c96a33f0538472bbd4bae5d4 Mon Sep 17 00:00:00 2001 From: vsc20641 Date: Thu, 27 Jun 2024 16:01:13 +0200 Subject: [PATCH 4/5] removing python2 as a required tool in cue --- tests/cue/src/tools_list.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tests/cue/src/tools_list.py b/tests/cue/src/tools_list.py index 0d7ef43..44571d5 100644 --- a/tests/cue/src/tools_list.py +++ b/tests/cue/src/tools_list.py @@ -128,13 +128,6 @@ 'minver': '5.8', 'modname': 'Mercurial', }, - 'Python2': - { - 'exe': 'python2', - 'options': '2>&1', - 'minver': '2.7.18', - 'modname': 'Python/2.7.18-GCCcore-10.2.0', - }, 'Samba Client': { 'exe': 'smbclient', From d43d2a5e670c4ad55c3ae01dc55025e3efe4d10c Mon Sep 17 00:00:00 2001 From: Michele Pugno Date: Thu, 3 Oct 2024 13:56:53 +0200 Subject: [PATCH 5/5] Update namd tolerance to 10% --- config_vsc.py | 14 ++++++------ tests/apps/namd/namd_test.py | 42 ++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/config_vsc.py b/config_vsc.py index 21e653c..28eaa73 100644 --- a/config_vsc.py +++ b/config_vsc.py @@ -151,7 +151,7 @@ { 'name': 'vaughan', 'descr': 'VSC Tier-2 Vaughan', - 'hostnames': ['login[1-2].vaughan'], + 'hostnames': ['.*vaughan'], 'modules_system': 'lmod', 'partitions': [ { @@ -213,12 +213,12 @@ 'access': [calcua_account_string_tier2, '-p ampere_gpu'], 'environs': ['CUDA', 'standard'], 'descr': 'Nvidia ampere node', - 'max_jobs': 1, + 'max_jobs': 10, 'launcher': 'srun', 'resources': [ { 'name': 'gpu', - 'options': ['--gres=gpu:{num_gpus}'], + 'options': ['--gpus-per-node={num_gpus}'], }, ] } @@ -227,7 +227,7 @@ { 'name': 'leibniz', 'descr': 'VSC Tier-2 Leibniz', - 'hostnames': ['login[1-2].leibniz'], + 'hostnames': ['.*leibniz'], 'modules_system': 'lmod', 'partitions': [ { @@ -269,12 +269,12 @@ 'access': [calcua_account_string_tier2, '-p pascal_gpu'], 'environs': ['CUDA', 'standard'], 'descr': 'Nvidia pascal nodes', - 'max_jobs': 2, + 'max_jobs': 5, 'launcher': 'srun', 'resources': [ { 'name': 'gpu', - 'options': ['--gres=gpu:{num_gpus}'], + 'options': ['--gpus-per-node={num_gpus}'], }, ] } @@ -283,7 +283,7 @@ { 'name': 'breniac', 'descr': 'VSC Tier-2 Breniac', - 'hostnames': ['login.breniac'], + 'hostnames': ['.*breniac'], 'modules_system': 'lmod', 'partitions': [ { diff --git a/tests/apps/namd/namd_test.py b/tests/apps/namd/namd_test.py index a2621b6..414cbbe 100644 --- a/tests/apps/namd/namd_test.py +++ b/tests/apps/namd/namd_test.py @@ -67,16 +67,16 @@ def __init__(self): self.scale_reference = { '1': { - 'leibniz:default-node': {'days_ns': (0.345, None, 0.05, 'days/ns')}, - 'vaughan:default-node': {'days_ns': (0.1991375, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (0.345, None, 0.10, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.1991375, None, 0.10, 'days/ns')}, }, '2': { - 'leibniz:default-node': {'days_ns': (0.24671949, None, 0.05, 'days/ns')}, - 'vaughan:default-node': {'days_ns': (0.1601965, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (0.24671949, None, 0.10, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.1601965, None, 0.10, 'days/ns')}, }, '4': { - 'leibniz:default-node': {'days_ns': (1.317, None, 0.05, 'days/ns')}, - 'vaughan:default-node': {'days_ns': (0.7218169, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (1.317, None, 0.10, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.7218169, None, 0.10, 'days/ns')}, }, } self.reference = self.scale_reference[self.num_nodes] @@ -118,25 +118,25 @@ def __init__(self): self.scale_reference = { '1': { - 'leibniz:default-node': {'days_ns': (0.347779, None, 0.05, 'days/ns')}, - 'vaughan:default-node': {'days_ns': (0.188093, None, 0.05, 'days/ns')}, - 'breniac:default-node': {'days_ns': (0.8281605, None, 0.05, 'days/ns')}, - 'hydra:default-node': {'days_ns': (0.202701, None, 0.05, 'days/ns')}, - 'genius:default-node': {'days_ns': (0.210896, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (0.347779, None, 0.10, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.188093, None, 0.10, 'days/ns')}, + 'breniac:default-node': {'days_ns': (0.8281610, None, 0.10, 'days/ns')}, + 'hydra:default-node': {'days_ns': (0.202701, None, 0.10, 'days/ns')}, + 'genius:default-node': {'days_ns': (0.210896, None, 0.10, 'days/ns')}, }, '2': { - 'leibniz:default-node': {'days_ns': (0.1782715, None, 0.05, 'days/ns')}, - 'vaughan:default-node': {'days_ns': (0.09856985, None, 0.05, 'days/ns')}, - 'breniac:default-node': {'days_ns': (0.1459575, None, 0.05, 'days/ns')}, - 'hydra:default-node': {'days_ns': (0.1099565, None, 0.05, 'days/ns')}, - 'genius:default-node': {'days_ns': (0.1151855, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (0.1782715, None, 0.10, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.09856985, None, 0.10, 'days/ns')}, + 'breniac:default-node': {'days_ns': (0.1459575, None, 0.10, 'days/ns')}, + 'hydra:default-node': {'days_ns': (0.1099565, None, 0.10, 'days/ns')}, + 'genius:default-node': {'days_ns': (0.1151855, None, 0.10, 'days/ns')}, }, '4': { - 'leibniz:default-node': {'days_ns': (1.05726, None, 0.05, 'days/ns')}, - 'vaughan:default-node': {'days_ns': (0.5438339, None, 0.05, 'days/ns')}, - 'breniac:default-node': {'days_ns': (0.8281605, None, 0.05, 'days/ns')}, - 'hydra:default-node': {'days_ns': (0.5427335, None, 0.05, 'days/ns')}, - 'genius:default-node': {'days_ns': (0.565824, None, 0.05, 'days/ns')}, + 'leibniz:default-node': {'days_ns': (1.10726, None, 0.10, 'days/ns')}, + 'vaughan:default-node': {'days_ns': (0.5438339, None, 0.10, 'days/ns')}, + 'breniac:default-node': {'days_ns': (0.8281610, None, 0.10, 'days/ns')}, + 'hydra:default-node': {'days_ns': (0.5427335, None, 0.10, 'days/ns')}, + 'genius:default-node': {'days_ns': (0.565824, None, 0.10, 'days/ns')}, }, } self.reference = self.scale_reference[self.num_nodes]