ReFrame Test Library (experimental)

This is a collection of generic tests that you can either run out-of-the-box by specializing them for your system using the -S option or create your site-specific tests by building upon them.

Scientific Applications

class hpctestlib.apps.amber.nve.amber_nve_check(*args, **kwargs)[source]

Bases: reframe.core.pipeline.RunOnlyRegressionTest

Amber NVE test.

Amber is a suite of biomolecular simulation programs. It began in the late 1970’s, and is maintained by an active development community.

This test is parametrized over the benchmark type (see benchmark_info) and the variant of the code (see variant). Each test instance executes the benchmark, validates numerically its output and extracts and reports a performance metric.

assert_energy_readout()[source]

Assert that the obtained energy meets the required tolerance.

benchmark

The name of the benchmark that this test encodes.

This is set from the corresponding value in the benchmark_info parameter pack during initialization.

Type

str

Required

Yes

benchmark_info = (('Cellulose_production_NVE', -443246.0, 5e-05), ('FactorIX_production_NVE', -234188.0, 0.0001), ('JAC_production_NVE_4fs', -44810.0, 0.001), ('JAC_production_NVE', -58138.0, 0.0005))

Parameter pack encoding the benchmark information.

The first element of the tuple refers to the benchmark name, the second is the energy reference and the third is the tolerance threshold.

Type

Tuple[str, float, float]

Values
[
    ('Cellulose_production_NVE', -443246.0, 5.0E-05),
    ('FactorIX_production_NVE', -234188.0, 1.0E-04),
    ('JAC_production_NVE_4fs', -44810.0, 1.0E-03),
    ('JAC_production_NVE', -58138.0, 5.0E-04)
]
energy_ref

Energy value reference.

This is set from the corresponding value in the benchmark_info parameter pack during initialization.

Type

float

Required

Yes

energy_tol

Energy value tolerance.

This is set from the corresponding value in the benchmark_info parameter pack during initialization.

Type

float

Required

Yes

input_file

The input file to use.

This is set to mdin.CPU or mdin.GPU depending on the test variant during initialization.

Type

str

Required

Yes

num_tasks

See num_tasks.

The mpi variant of the test requires num_tasks > 1.

Required

Yes

output_file = 'amber.out'

The output file to pass to the Amber executable.

Type

str

Required

No

Default

'amber.out'

perf()[source]

The performance of the benchmark expressed in ns/day.

Python

class hpctestlib.python.numpy.numpy_ops.numpy_ops_check(*args, **kwargs)[source]

Bases: reframe.core.pipeline.RunOnlyRegressionTest

NumPy basic operations test.

NumPy is the fundamental package for scientific computing in Python. It provides a multidimensional array object, various derived objects (such as masked arrays and matrices), and an assortment of routines for fast operations on arrays, including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, random simulation and much more.

This test test performs some fundamental NumPy linear algebra operations (matrix product, SVD, Cholesky decomposition, eigendecomposition, and inverse matrix calculation) and users the execution time as a performance metric. The default assumption is that NumPy is already installed on the currest system.

time_cholesky()[source]

Time of the cholesky kernel in seconds.

time_dot()[source]

Time of the dot kernel in seconds.

time_eigendec()[source]

Time of the eigendec kernel in seconds.

time_inv()[source]

Time of the inv kernel in seconds.

time_svd()[source]

Time of the svd kernel in seconds.

Interactive Computing

class hpctestlib.apps.jupyter.ipcmagic.ipcmagic_check(*args, **kwargs)[source]

Bases: reframe.core.pipeline.RunOnlyRegressionTest

Test ipcmagic via a distributed TensorFlow training with ipyparallel.

ipcmagic is a Python package and collection of CLI scripts for controlling clusters for Jupyter. For more information, please have a look here.

This test checks the ipcmagic performance. To do this, a single-layer neural network is trained against a noisy linear function. The parameters of the fitted linear function are returned in the end along with the resulting loss function. The default assumption is that ipcmagic is already installed on the system under test.

assert_successful_execution()[source]

Checks that the program is running on 2 different nodes (nids are different), that IPCMagic is configured and returns the correct end-of-program message (returns the slope parameter in the end).