ASPECT (Advanced Solver for Problems in Earth's ConvecTion) is a massively parallel, finite-element geodynamics simulation code built on the deal.II library. It solves the Stokes and advection-diffusion equations for mantle convection, lithosphere dynamics, melt migration, and related tectonic processes. The code features a highly modular plugin architecture with registration macros for material models, heating models, boundary conditions, postprocessors, mesh refinement, particle tracking, and more. It includes an extensive benchmark suite for code verification and numerous cookbooks demonstrating real geodynamic applications. The repository also bundles the Geodynamic World Builder (contrib/world_builder), a standalone library for constructing initial temperature, composition, and velocity fields from structured input files. ASPECT is actively developed with continuous integration, Docker support, and coupling to external tools like Landlab and FastScape for surface processes.
KaHIP (Karlsruhe High Quality Partitioning) is a high-performance C++ library and command-line toolkit for graph partitioning, node ordering, and mapping. It implements multilevel partitioning with advanced refinement techniques including Fiduccia-Mattheyses local search, flow-based min-cut refinement, cycle improvements, and tabu search. The library provides a C API for integration into external applications, along with Python bindings and a Java JNI wrapper. The codebase includes both a sequential version and a distributed-memory parallel version (ParHIP) using MPI, enabling partitioning of large graphs on clusters. Core algorithms are well-structured with modular coarsening, initial partitioning, and uncoarsening/refinement phases, supporting multiple matching strategies (GPA, random, label propagation) and quality/speed trade-offs via preconfigured modes (Strong, Eco, Fast, Social). Despite research-grade complexity and some code duplication between serial and parallel variants, the library is actively maintained and widely used in scientific computing and graph analytics.
OpenHPC is a community-driven software distribution and infrastructure framework for High Performance Computing (HPC) clusters. It provides a collection of RPM packages, installation recipes, and testing infrastructure to deploy and manage HPC environments on Linux distributions such as RHEL, SUSE, and openEuler. The repository serves as the build system and validation suite for the distribution, ensuring compatibility across multiple MPI implementations, compilers, and scientific libraries. It does not function as a single application but rather as a meta-package and deployment framework for HPC systems.
TorchFort is a library that bridges PyTorch with Fortran and C/C++ programs, primarily targeting HPC/scientific computing applications. It provides a C API that allows users to load PyTorch models (via TorchScript or built-in MLP), train them, and perform inference directly on user-provided arrays without data copying. The library supports supervised learning as well as reinforcement learning (RL) with several state-of-the-art algorithms: DDPG, TD3, SAC, and PPO. It includes comprehensive RL infrastructure such as replay buffers, rollout buffers, online running normalizers, and distributed training via MPI. Integration with Weights & Biases is available for experiment tracking. Architecturally, TorchFort consists of a thin C API layer, a set of C++ implementations using LibTorch, and Fortran bindings generated via ISO_C_BINDING. The core C++ code is organized into modules for model management, training, distributed communication, CUDA utilities, and RL subsystems. Configuration is externalized via YAML files, and the library is designed to be used as a static or shared library linked into user applications. Notable components include a prioritized replay buffer with sum-tree implementation (replay_buffer.h), an online running normalizer using Welford's algorithm with MPI synchronization (running_normalizer.h), and a tensor list abstraction for handling multiple typed arrays (tensor_list.h). The codebase demonstrates good engineering practices with extensive test coverage, error handling via return codes, and support for both CPU and GPU execution. While primarily an application/library for integrating PyTorch into HPC codes, the repository also contains research-quality RL algorithm implementations and data preprocessing components, giving it a hybrid character.
mpiFileUtils is a suite of MPI-based command-line tools for managing large datasets on parallel file systems (Lustre, DAOS, GPFS, NFS). It provides parallel equivalents of common file operations: dcp (copy), dsync (sync), drm (remove), dcmp (compare), dtar (archive), dfind (find), dchmod (chmod), dbcast (broadcast), ddup (dedup), and others. The tools are built atop a common library (libmfu) that implements a distributed file list (mfu_flist) with collective operations, path manipulation, I/O wrappers with retry logic, progress reporting, and work distribution via libcircle. The architecture follows a walk->filter->act pattern where the file system is traversed in parallel, metadata is aggregated into a distributed list, and work is distributed across MPI ranks. The tools are designed for high-throughput operations on millions of files and are used in HPC environments. While the codebase shows signs of legacy (dcp1, Python 2 tests), it is actively maintained and includes advanced features like DAOS object-level copy and tar indexing for parallel extraction. The repository is primarily an application (CLI tool suite) with a strong library component (libmfu) that could be reused in other HPC data-movement projects.