TomoPy Benchmarking with PyCTest
Using PyCTest, the process of building and testing TomoPy is captured and submitted to CDash @ NERSC
Results can be found at the TomoPy Testing Dashboard
All build warnings and errors are parsed and reported by CDash
In addition to running nosetests
, several other tests are generated and executed
CDash captures the command executed and all of the output
Detailed timing and memory reports on TomoPy are integrated into these tests and submitted to CDash in both plotted and ASCII forms
Timing and memory plots analysis is done through TiMemory
Additionally, the results of the TomoPy tests (i.e. image reconstructions) are also uploaded tp CDash
$ conda install -c jrmadsen -n < env> pyctest timemory
$ pip install -v pyctest timemory
Submission is invoke by running ./pyctest_tomopy.py
from the main directory
Run ./pyctest_tomopy.py --help
to view the list of available configuration options
Supplementary files
./benchmarking/pyctest_tomopy_rec.py
is a TomoPy reconstruction script for TomoBank data
When the option --globus-path
is specified, PyCTest will reconstruct tomo_00001/tomo_00001.h5
with all the specified algorithms
./benchmarking/pyctest_tomopy_phantom.py
is a TomoPy reconstruction script for built-in phantoms
The default assumption is that the current Python environment has all of the required packages for TomoPy
$ export PYTHON_VERSION=3.6
$ export CONDA_ENV=" tomopy-pyctest"
$ conda install -n ${CONDA_ENV} -c conda-forge -c jrmadsen python=${PYTHON_VERSION} nose numpy h5py scipy scikit-image pywavelets mkl-devel mkl_fft python-coveralls dxchange numexpr coverage timemory pyctest
$ source activate ${CONDA_ENV}
$ ./pyctest_tomopy.py --globus-path=${HOME} /devel/globus --num-iter=10 --pyctest-site=" Cori-Haswell" --pyctest-token-file=" ${HOME} /.tokens/nersc-cdash"