Software Projects
Tools and libraries I’ve released as open source.
-
Spack
A flexible package manager designed to support multiple versions, configurations, platforms, and compilers. Provides a simple expression langauge to simplify the task of configuring HPC software.
GitHub Docs -
Cram
Cram runs many small MPI jobs within a single, large MPI job by virtualizing its MPI operations. Cram has been used to run 1.5 million concurrent MPI jobs on LLNL’s Sequoia machine.
GitHub Site -
Rubik
Rubik generates MPI task mapping files for structured applications and torus or mesh networks. It applies transforamtions to an application topology to generate the mappings.
GitHub Docs -
Muster
Parallel K-medoids clustering library, used in performance and debugging tools. Implements PAM, CLARA, the CAPEK parallel clustering algorithm, and an MPI-parallel Bayesian Information Criterion (BIC) calculation.
GitHub Docs -
wrap.py
Simple language for generating libraries of PMPI wrapper functions. Based on the profiling wrapper generator in MPE but with more features. Generates C and Fortran bindings.
GitHub Docs -
Callpath
Library for representing, transferring, and analyzing stack traces scalably in distributed applications.
GitHub -
Nami
Parallel wavelet transform and EZW compression library.
GitHub -
perf-dump
Records per-process, per-timestep PAPI performance counter values. Saves them in an HDF5 file using parallel I/O. Think of this as a checkpointing library for basic performance data.
GitHub