Skip to main content

MCS Software

Argonne’s Mathematics and Computer Science Division is incorporating new numerical methods into portable, high-performance software and testing of that software in large-scale simulations of interest to the scientific community.

Argonne’s Mathematics and Computer Science Division (MCS) has been a world leader in the development of robust, reliable software for almost half a century. Today, thousands of researchers in academia and industry use our software in applications that include computational chemistry, protein structure, astrophysics, climate modeling, and reservoir simulation. 

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.
  • 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 complicated 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, accurate, 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-int’eger programming) problems on high-performance computing clusters.
  • ExM provides support for extreme-scale, many-task applications.
  • FTK is a library that provides building blocks for feature tracking algorithms in scientific data sets.
  • Globus Online is a file transfer and synchronization service that is specifically geared to the big data needs of the research community. In particular, it provides reliable, high-performance, secure file transfer.
  • Globus Connect is the de facto standard for projects requiring secure, robust, high-speed bulk data transport.
  • 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 provide log files, communication statistics, and graphical output of the results. An enhanced version deals with larger numbers of processes and to provide 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. The MINOTAUR library can also 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 provides an MPI implementation that 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 is actively used in the Cesar project and has run on the Blue Gene/Q with 1 million MPI ranks — a watershed!
  • 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
  • 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.
  • ParVis, designed specifically for analyzing ultra-large climate datasets, includes both parallel tools and visualization techniques.
  • PETSc (Portable, Extensible Toolkit for Scientific Computation) is a suite of efficient scalable libraries for solving large-scale problems modeled by partial differential equations with support for C/C++, Fortran, and Python. It includes time-steppers (with adjoints), nonlinear solvers, linear solvers and support for a variety of mesh types including structured, unstructured, oct-tree, and networks. It shares a common interface with TAO (for optimization) and SLEPc (for eigenvalues).
    • PETSc DMNetwork provides for scalable, efficient multi-physics simulations on networks including the power grid, watershed (streams and rivers), and gas and water pipeline networks.
    • PETSc TSAdjoint provides efficient, scalable sensitivity capabilities for the time-steppers in PETSc. This derivative information can be used for PDE constrained optimization, neural networks, sensitivity analysis, goal-oriented error estimation, data assimilation, and optimal control.
  • 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 HPC data compressor that tackles the growing problem of how to handle the extremely large amounts of data being produced by scientific simulations; SZ provides an effective way of reducing the data so that it can be stored or transferred across the network.
  • 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. Our approach is to exploit numerical abstractions in large-scale optimization software design, so that we can leverage external parallel computing infrastructure (for example, communication libraries and visualization packages) and linear algebra tools in the development of optimization algorithms.
  • VeloC (Very Low Overhead Transparent Multilevel Checkpoint/Restart) provides a an optimized multi-level checkpoint/restart library for applications and workflows, increasing programmer productivity by: (1) offering a simple interface, (2) dramatically reducing the difficulty of handling varied and complex storage architectures, and (3) removing the need for application developers to optimize performance and reliability. VeloC is the follow-up of the SCR library that received an R&D 100 award in 2019.
  • ZeptoOS is a research project studying very efficient and customized Linux kernels for petascale and exascale architectures with 10,000 to 1 million CPUs.