Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tomography benchmark suite

Comparing the performance of Filtered BackProjection (FBP) and Log-Polar Reconstruction (LPRec) tomography pipelines using the httomo, Nabu and TomoCuPy tomography suites.

Repository structure

  • batch sbatch scripts to execute jobs on the supercomputer cluster. These scripts target Komondor and need modifications to run elsewhere.
  • pipelines Tomography pipeline definitions
  • scripts Extra scripts e.g. to generate the input dataset
  • environment.yml Conda environment definition
  • justfile Common task definitions for the just command runner
  • tomobenchmarks.def Definition of the Singularity/Apptainer image to execute the benchmarks in

Usage

Running the small benchmarks locally

  1. Make sure, that the just command runner and the conda package manager is installed and available on the path.
  2. Build the Conda environment: just recreate-env. Note, that this removes and recreates the environment named tomobenchmarks.
  3. Generate the input dataset: just generate-input. This creates a Nexus file in the working directory that is a synthesized Shepp-Logan phantom. The format is compatible with all benchmarked tomography suites.
  4. Run all small-data benchmarks: just run-all. This executes all pipelines defined in the repository.

Running the small and large benchmarks on a cluster

Note, that these steps are specific to the Komondor supercomputer, and must be adapted to run on other systems.

  1. Build the Singularity/Apptainer image:
module load apptainer
apptainer --verbose build tomobenchmarks.sif tomobenchmarks.def
  1. Generate the input datasets. Since this task is compute-intensive, it should be executed on the CPU partition of the cluster. The job is submitted by sbatch, and synthetic.nx and synthetic-huge.nx should appear in the working directory as a result.
sbatch batch/generate-input-data.sbatch
  1. Run the small benchmark suite on the GPU partition of the cluster. This uses a single GPU. The resulting logs and output data files are generated in the working directory.
sbatch batch/run-default.sbatch
  1. Run the large benchmarks on the GPU partition of the cluster. These use all 4 GPUs on a single node. In this case, both benchmarks should be executed as a separate job:
sbatch batch/run-httomo-fbp-preproc.sbatch
sbatch batch/run-nabu-fbp-preproc.sbatch

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages