MCS Software
MCS Menu
Argonne has been a world leader in the development of robust, reliable scientific software for half a century. Foundational tools developed at Argonne — including MPICH, the first widely adopted implementation of the Message Passing Interface; PETSc, a gold-standard library for solving large-scale equations; and Globus, the trusted platform for secure data sharing — form the backbone of modern computational science.
Argonne has also been at the forefront of creating software packages used for large-scale scientific applications. Groundbreaking computational codes developed by Argonne scientists for supercomputing platforms include Nek5000/NekRS, a suite of highly scalable solvers for computational fluid dynamics; HAAC, an extreme-scale cosmological simulation code; and Flash-X, a multiphysics software system.
Still other award-winning software — ADIFOR, for differentiating Fortran 77 programs; Mochi, for developing customized data services; Darshan, for tuning of the I/O behavior of complex HPC applications; and SZ, for enabling lossy compression of scientific data — has addressed the needs of next-generation scientists and engineers.
These software products have been used by thousands of researchers in government, academic, and industry around the world, making Argonne an international leader in software development.
Software includes:
- ADIC is a tool for the automatic differentiation of programs written in ANSI C. Given the source code and a user’s specification of dependent and independent variables, ADIC generates an augmented C code that computes the partial derivatives of all of the specified dependent variables with respect to all of the specified independent variables in addition to the original result.
- ADIFOR is a tool for the automatic differentiation of Fortran 77 programs.
- ADLB (Asynchronous Dynamic Load Balancing) is an MPI-based software library designed to help rapidly build scalable parallel programs. It provides a master/worker system with a put/get API for task descriptions, thus allowing workers to add work dynamically to the system. The library has been used as an execution engine for applications such as Green’s function Monte Carlo and higher-level “many-task” programming models.
- Argo augments and optimizes existing OS/R components for use in production HPC systems, providing portable, open source, integrated software that improves the performance and scalability and offers increased functionality to exascale applications and runtime systems in areas such as memory management, power management, resource management, and hardware co-design.
- Casper is a process-based asynchronous progress model for MPI RMA communication on multicore and many-core architectures.
- CODES is a detailed and highly parallel simulation toolkit for exascale storage.
- Darshan is a scalable HPC I/O characterization tool, designed to capture an accurate picture of application I/O behavior, including properties such as patterns of access within files, with minimum overhead.
- DeepHyper is a scalable automated machine learning (AutoML) package for developing deep neural networks for scientific applications.
- DSP is an open-source software package that implements parallel decomposition methods for solving structured mixed-integer programming (e.g., stochastic mixed-integer programming) problems on high-performance computing clusters.
- ExM provides support for extreme-scale, many-task applications.
- Flash-X is a highly composable multiphysics software system that can be used to simulate physical phenomena in several scientific domains. Derived from FLASH, it has been redesigned to be compatible with increasingly heterogeneous hardware platforms and is language-agnostic.
- FTK is a library that provides building blocks for feature tracking algorithms in scientific data sets.
- Globus is a file transfer and synchronization service that is specifically geared to the big data needs of the research community. It provides reliable, high-performance, secure file transfer. It includes Globus Online and Globus Connect.
- HAAC is a framework of hardware-accelerated cosmology codes for heterogeneous systems, portable across different architectures.
- IOFSL is an I/O forwarding scalability layer providing function shipping at the file system interface level.
- Jumpshot is a profiling tool that provides log files, communication statistics, and graphical output of the results. An enhanced version deals with larger numbers of processes and provides visualization of parallel I/O activities. Jumpshot is distributed with MPICH.
- KernelMatrices.jl is a software package for working with hierarchical matrices to perform scalable second-order optimization for maximum likelihood estimation of Gaussian processes.
- libEnsemble is a Python library to coordinate the concurrent evaluation of dynamic ensembles of calculations with use cases including massively parallel solution of design, decision, and inference problems.
- MCT (Model Coupling Toolkit) is a software library for constructing parallel coupled models from individual parallel models. MCT is designed for high performance and portability and offers a programming model similar to MPI. Core services include component registration, decomposition description, indexible data storage, parallel data transfer, and interpolation.
- Mercury is an interface enabling remote procedure calls in high-performance computing.
- MeshKit is a library for geometry-based 2D and 3D mesh generation.
- MG-RAST is a SEED-based environment that allows users to upload metagenomes for automated analyses.
- MINOTAUR is an open-source toolkit for solving mixed-integer nonlinear optimization problems. It provides different solvers that implement state-of-the-art algorithms for MINLP and can be used to customize algorithms to exploit specific problem structures.
- MOAB (Mesh-Oriented Database) represents and evaluates mesh data.
- Mochi is a framework for rapid development of custom data services in HPC environments.
- Model SEED is a resource for high-throughput reconstruction of metabolic models.
- MPICH is a high-performance, widely portable implementation of the Message Passing Interface standard. It efficiently supports different computational and communication platforms, including commodity clusters, high-speed networks, and proprietary high-end computing systems. It also enables cutting-edge research in MPI through an easy-to-extend modular framework for other derived implementations.
- Nek5000 is an open-source computational fluid dynamics solver based on the spectral element method. It features state-of-the-art scalable algorithms and has more than 500 users worldwide.
- NekLBM is a spectral-element discontinuous Galerkin lattice-Boltzmann fluid solver.
- NekCEM is a high-fidelity electromagnetic solver.
- NekRS is a GPU-accelerated spectral element Navier–Stokes solver. Nek5000/NekRS was used in exascale multiphysics nuclear reactor simulations that were named a Gordon Bell Prize finalist in 2023.
- Nimbus is an integrated set of tools that delivers the power and versatility of infrastructure clouds to scientific users.
- OpenAD enables automatic differentiation of numerical computer programs.
- ORBIT solves bound-constrained derivative-free/zero-order optimization problems by using local RBF surrogates.
- Orio is an extensible annotation-based empirical tuning system.
- OSHMPI is a popular standard of the SHMEM programming model. OSHMPI is the implementation of OpenSHMEM over MPI.
- Parallel netCDF provides high-performance I/O while still maintaining file format compatibility with Unidata’s NetDCF.
- PETSc (Portable, Extensible Toolkit for Scientific Computation) is a suite of scalable libraries for solving large-scale problems modeled by partial differential equations with support for C/C++, Fortran, and Python. It includes time-steppers, linear and nonlinear solvers, and support for various mesh types. It also contains TAO (for optimization). PETSc DMNetwork provides for scalable, efficient multiphysics simulations on large-scale networks. PETSc TSAdjoint provides efficient, scalable sensitivity capabilities for the time-steppers in PETSc.
- PIPS is a parallel optimization solver for stochastic programming problems with recourse.
- Rapsodia is a tool for the computation of higher-order derivative information of numerical models written in Fortran, C, or C++ by automatic differentiation.
- ROMIO is a high-performance, portable implementation of MPI-IO. ROMIO includes almost everything defined in the MPI-2 I/O chapter and is optimized for noncontiguous access patterns, which are common in parallel applications. It also has an optimized implementation of collective I/O, an important optimization in parallel I/O.
- Swift is a parallel scripting language designed for composing application programs into parallel applications that can be executed on multicore processors, clusters, grids, clouds, and supercomputers.
- SZ is a fast error-bounded lossy data compressor that tackles the growing problem of how to handle the extremely large amounts of data being produced by scientific simulations.
- TACO (Toolkit for AMPL Control Optimization) provides a set of extensions to the AMPl modeling language to conveniently model mixed-integer optimal control problems for ODE or DAE dynamic processes.
- TAO (Toolkit for Advanced Optimization) focuses on the design and implementation of component-based optimization software for the solution of large-scale optimization applications. It is now included as part of the PETSc distribution. TAO exploits numerical abstractions in large-scale optimization software design, so that users can leverage external parallel computing infrastructure (e.g., communication libraries and visualization packages) and linear algebra tools in developing optimization algorithms.
- VeloC (Very Low Overhead Transparent Multilevel Checkpoint/Restart) provides a an optimized multilevel checkpoint/restart library for applications and workflows, offering a simple interface and dramatically reducing the difficulty of handling varied and complex storage architectures.
- ZeptoOS is a research project studying very efficient and customized Linux kernels for petascale and exascale architectures with 10,000 to 1 million CPUs.