Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uenv hdf5 #99

Closed
wants to merge 13 commits into from
2 changes: 2 additions & 0 deletions .github/linters/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
select = F401
17 changes: 17 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: ReFrame CI

on: [push, pull_request]

jobs:
codechecker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter@v4
env:
VALIDATE_ALL_CODEBASE: false
VALIDATE_PYTHON_FLAKE8: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
12 changes: 7 additions & 5 deletions checks/microbenchmarks/cpu/simd/nsimd.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,17 @@ class NsimdTest(rfm.RegressionTest):
* num_tasks: 1
* speedup: 12.306 x (ns)
'''
bench_name = parameter(['mul.avx2.f32.cpp', 'mul.avx2.f64.cpp'])

valid_systems = ['dom:mc', 'dom:gpu', 'eiger:mc']
bench_name = parameter(['mul.avx2.f64.cpp'])
valid_systems = ['*']
valid_prog_environs = ['PrgEnv-gnu']
build_system = 'SingleSource'

# c++ test code generated with:
# python3 egg/hatch.py --benches --simd avx2 -m mul
# and benches.hpp copied from:
# https://github.com/agenium-scale/nsimd/blob/master/benches/
sourcesdir = 'benches'
modules = ['nsimd', 'googlebenchmark', 'sleef', 'MIPP']
maintainers = ['JG']
maintainers = ['@jgphpc']
exclusive = True
num_tasks = 1
num_tasks_per_node = 1
Expand All @@ -60,6 +58,10 @@ class NsimdTest(rfm.RegressionTest):
def set_descr(self):
self.descr = f'testing {self.bench_name}'

@run_before('compile')
def skip_test(self):
self.skip_if(True, 'skipping legacy test (nsimd no longer installed)')

@run_before('compile')
def setup_build(self):
self.sourcepath = self.bench_name
Expand Down
4 changes: 2 additions & 2 deletions checks/prgenv/environ_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class DefaultPrgEnvCheck(rfm.RunOnlyRegressionTest):

@run_after('init')
def load_cray_module(self):
if self.current_system.name in ['hohgant', 'pilatus']:
if self.current_system.name in ['hohgant', 'eiger', 'pilatus']:
self.modules = ['cray']

@run_before('sanity')
Expand Down Expand Up @@ -102,7 +102,7 @@ class CrayVariablesCheckEiger(CrayVariablesCheck):

@run_after('init')
def load_cray_module(self):
if self.current_system.name in ['hohgant', 'pilatus']:
if self.current_system.name in ['hohgant', 'eiger', 'pilatus']:
self.modules = ['cray']

@run_after('init')
Expand Down
2 changes: 1 addition & 1 deletion checks/system/io/ior_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def set_valid_systems(self):

@run_after('init')
def load_cray_module(self):
if self.current_system.name in ['pilatus']:
if self.current_system.name in ['eiger', 'pilatus']:
self.modules = ['cray']

@run_before('compile')
Expand Down
21 changes: 10 additions & 11 deletions config/systems/eiger.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
},
{
'type': 'Singularity',
'modules': ['singularity/3.5.3-eiger']
'modules': ['cray', 'singularity/3.6.4-eiger']
}
],
'environs': [
Expand Down Expand Up @@ -100,51 +100,50 @@
}
)


site_configuration = {
'systems': [
eiger_sys,
eiger_sys
],
'environments': [
{
'name': 'PrgEnv-aocc',
'target_systems': ['eiger'],
'modules': ['PrgEnv-aocc']
'modules': ['cray', 'PrgEnv-aocc']
},
{
'name': 'PrgEnv-cray',
'target_systems': ['eiger'],
'modules': ['PrgEnv-cray']
'modules': ['cray', 'PrgEnv-cray']
},
{
'name': 'PrgEnv-gnu',
'target_systems': ['eiger'],
'modules': ['PrgEnv-gnu']
'modules': ['cray', 'PrgEnv-gnu']
},
{
'name': 'PrgEnv-intel',
'target_systems': ['eiger'],
'modules': ['PrgEnv-intel']
'modules': ['cray', 'PrgEnv-intel']
},
{
'name': 'cpeAMD',
'target_systems': ['eiger'],
'modules': ['cpeAMD']
'modules': ['cray', 'cpeAMD']
},
{
'name': 'cpeCray',
'target_systems': ['eiger'],
'modules': ['cpeCray']
'modules': ['cray', 'cpeCray']
},
{
'name': 'cpeGNU',
'target_systems': ['eiger'],
'modules': ['cpeGNU']
'modules': ['cray', 'cpeGNU']
},
{
'name': 'cpeIntel',
'target_systems': ['eiger'],
'modules': ['cpeIntel']
'modules': ['cray', 'cpeIntel']
},
],
}
2 changes: 1 addition & 1 deletion config/systems/pilatus.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
},
{
'type': 'Singularity',
'modules': ['cray', 'singularity/3.5.3-eiger']
'modules': ['cray', 'singularity/3.6.4-eiger']
}
],
'environs': [
Expand Down
51 changes: 51 additions & 0 deletions uenv_checks/libraries/io/hdf5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Copyright 2016-2023 Swiss National Supercomputing Centre (CSCS/ETH Zurich)
# ReFrame Project Developers. See the top-level LICENSE file for details.
#
# SPDX-License-Identifier: BSD-3-Clause

import reframe as rfm
import reframe.utility.osext as osext
import reframe.utility.sanity as sn


@rfm.simple_test
class HDF5Test(rfm.RegressionTest):
"""
Create a file and dataset and select/read a subset from the dataset
https://portal.hdfgroup.org/display/HDF5/Examples+from+Learning+the+Basics
"""
lang = parameter(['cpp', 'f90'])
valid_systems = ['+remote']
valid_prog_environs = ['+mpi', '+hdf5']
build_system = 'SingleSource'
build_locally = False
num_tasks = 1
postrun_cmds = ['h5ls *.h5']
tags = {'production', 'craype', 'health'}

@run_before('compile')
def set_source(self):
repo = 'https://raw.githubusercontent.com/HDFGroup/hdf5/develop'
src = {
'cpp': 'c++/examples/h5tutr_subset.cpp',
'f90': 'fortran/examples/h5_subset.f90'
}
pkgconfig = {
'cpp': '`pkg-config --libs hdf5_cpp`',
'f90': '`pkg-config --libs hdf5_fortran`'
}
self.sourcepath = src[self.lang].split("/")[-1]
self.build_system.cppflags = ['`pkg-config --cflags hdf5`']
self.build_system.ldflags = [
pkgconfig[self.lang],
'-Wl,-rpath,`pkg-config --variable=libdir hdf5`'
]

@run_before('sanity')
def set_sanity(self):
self.sanity_patterns = sn.assert_found(r'IntArray\s+Dataset \{8, 10\}',
self.stdout)

# NOTE: keeping (reference to old workarounds) as reminder:
# https://github.com/eth-cscs/cscs-reframe-tests/blob/v23.05/checks/
# -> libraries/io/hdf5_compile_run.py#L51
1 change: 1 addition & 0 deletions uenv_checks/libraries/io/src/h5_subset.f90
1 change: 1 addition & 0 deletions uenv_checks/libraries/io/src/h5tutr_subset.cpp