SciATH

This is documentation for SciATH.

What is it?

Testing code should be easy. The functionality required to launch, parse and perform verification should be light-weight and simple to migrate into existing projects. SciATH supports testing of sequential and MPI-parallel applications. Tests can be performed locally, or submitted via a batch queuing system (e.g. PBS, LSF, Slurm or LoadLeveler).

SciATH is a set of lightweight Python tools designed to quickly and easily test scientific application codes. As such, it focuses on full-application testing and prioritizes being able to run on clusters with batch systems. This is in contrast to most testing frameworks, which are designed with libraries in mind, and are often closely associated with specific programming languages.

Key Concepts

SciATH provides:

  • An object to define a test. A “test” consists of:
    • a unique textual name;
    • one or more executables;
    • a number of MPI ranks (1 for serial execution)
    • a text file containing the expected output;
    • a method to compare any output generated by the test (e.g. from stdout or another output file)
  • A set of tools to parse / filter and query text files for test verification purposes
  • A “harness” object to quickly define and process a set of tests
  • Internally, a “launcher” object to manage launching a serial or MPI job locally or via a batch queuing system

How do I use this ?

  1. SciATH depends on Python 3 (or Python 2.4+) and numpy
  2. When using Python 3, it is highly recommended you set the environment variable PYTHONUNBUFFERED, e.g. export PYTHONUNBUFFERED
  3. Make sure you modify your PYTHONPATH environment variable to include this directory