MCS Software
MCS has long been a leader in the development of robust, reliable software. As early as the 1970s, Argonne spearheaded a series of software engineering projects that culminated in the release of EISPACK, LINPACK, FUNPACK, and MINPACK. Today, MCS researchers are continuing this tradition, with an added emphasis on portability and scalability. Thousands of researchers in academia and industry use our software in applications that include computational chemistry, protein structure, vortex dynamics, astrophysics, climate modeling, mathematics and logic, CFD, and reservoir simulation.
- Access Grid Toolkit --The Access Grid Toolkit enables users to experience rich collaborations including people, data, and grid computing resources. The new 2.0 version of the toolkit includes streamlined user interfaces, robust middleware and low-level services that enable participants to share experiences through digital media.
- ADIC -- 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 -- ADIFOR is a tool for the automatic differentiation of Fortran 77 programs. Given a Fortran 77 source code and a user's specification of dependent and independent variables, ADIFOR will generate an augmented derivative 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.
- BLMVM -- BLMVM minimizes an objective function subject to lower and upper bounds on the variables. Applications typically involve minimizing cost, energy, or error subject to legal, physical, or logistical constraints. Success stories have involved parameter estimation, molecular geometry, and risk management. Its convergence requires a continuous objective function and first derivatives over the feasible domain.
- City -- City is a set of software, tools, and procedures that we have developed to run the clusters in the MCS Division. They are focused on building and supporting Chiba City, the MCS Scalable Cluster.
- dgsol -- The dgsol code is designed for the solution of distance geometry problems with lower and upper bounds on distance constraints. The dgsol code uses only a sparse set of distance constraints, while other algorithms tend to work with a dense set of constraints either by imposing additional bounds or by deducing bounds from the given bounds. We have used the code successfully to study protein structures: our approach based on dgsol is significantly more reliable and efficient than multi-starts with an optimization code.
- DSDP -- DSDP implements an interior-point method for semidefinite programming. It provides primal and dual solutions, exploits structure in the data, and has relatively low memory requirements for an interior-point method. The dual-scaling algorithm implemented in this package has a convergence proof and worst-case polynomial complexity under mild assumptions on the data. Furthermore, the solver offers scalable parallel performance for large problems. Some of the most popular applications of semidefinite programming and linear matrix inequalities are model control, structural design, and relaxations of combinatorial and global optimization problems.
- FLIC -- FLIC, a Fortran loop and index converter, is a parser-based translation tool that automatically converts program loops and array indices for distributed-memory parallel computers. FLIC is targeted to applications that employ regular gridded domains, such as weather models, that will be parallelized by data-domain decomposition.
- FOAM -- The Fast Ocean-Atmosphere Model (FOAM) is a coupled ocean/atmosphere model that incorporates all the physics needed for multicentury simulations. It uses a combination of improved ocean model formulation and reduced-resolution atmosphere model to reduce computational requirements by a factor of ten relative to similar models. It uses parallel processing techniques to allow execution on parallel platforms that are more cost-effective than the vector multiprocessors traditionally used for climate model. A 500-year simulation performed with this model has yielded significant scientific results.
- Globus Toolkit -- The Globus Alliance provides software tools that make it easier to build computational Grids and Grid-based applications. These tools are collectively called the Globus Toolkit. The Globus Toolkit is used by many organizations to build Grids that can support their applications. The open source Globus Toolkit includes tools and libraries for solving problems in the following areas: security, communication, information infrastructure, fault detection, resource management, portability, and data management.
- HEIGHTS -- The HEIGHTS (High Energy Interaction with General Heterogeneous Target Systems) package is used to simulate the physics of intense energy and power deposition on targets. The package integrates codes for diverse experiments -- MHD, magnetic diffusion, thermal conductivity, radiation transport, and hemodynamics -- and includes a graphical interface interactive calculations and presentation of information.
- High-Performance I/O -- Our work in high-performance I/O features ROMIO and PVFS, as well as several other packages for managing and analyzing data.
- ICFS -- ICFS is an incomplete Cholesky factorization for the solution of large-scale trust region subproblems and positive definite systems of linear equations. Our numerical results show that the number of conjugate gradient iterations and the computing time are reduced dramatically for small values of p. Our results also show that in contrast with drop tolerance strategies, the new a pproach is more stable in terms of number of iterations and memory requirements.
- Jumpshot -- Jumpshot is a profiling tools 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.
- MCT -- The Model Coupling Toolkit (MCT) 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.
- MM5 -- Distributed Memory Parallel Version -- MM5 has been extended for use on distributed memory parallel computers such as the IBM SP, Cray T3E, Fujitsu VPP, clusters of PCs and workstations, and distributed-memory clusters of multiprocessor machines. It also provides an alternative to shared-memory parallel execution on distributed shared-memory machines such as as the Silicon Graphics Origin 2000, the Hewlett Packard SPP, and others. This version of MM5 was developed by Argonne in collaboration with NCAR.
- MPI -- MPI (Message-Passing Interface) is a specification for the user interface to message-passing libraries for parallel computers. It was designed by a broadly based group of parallel computer vendors, library writers, and application developers to serve as a standard. MPI can be used to write programs for efficient execution on a wide variety of parallel machines, including massively parallel supercomputers, shared-memory multiprocessors, and networks of workstations.
- Msys -- The Msys package of software includes a number of systems administration utilities. These assist a team of system administrators in managing a computing environment by automating routine tasks and centralizing information.
- MPICH -- MPICH is a freely available implementation of the MPI Standard, developed jointly with Mississippi State University. MPICH is designed to provide high performance, portability, and a convenient programming environment. MPICH comes with a library of convenience functions for X11 window system graphics and event logging, together with the upshot and nupshot performance visualization tools.
- NEOS
Server -- The NEOS Server 3.0 is the first network-enabled problem-solving
environment for a wide class of applications in business, science, and engineering.
Included are state-of-the-art solvers in integer programming, nonlinearly constrained
optimization, bound-constrained optimization, unconstrained optimization, linear
programmming, stochastic linear programming, complemetarity problems, linear network
optimization, semidefinite programming, and administrative programming.
- OpenAnalysis -- The goal of the OpenAnalysis toolkit is to separate analysis from the intermediate representation in a way that allows the orthogonal development of compiler infrastructures and program analysis. Separation of analysis from specific intermediate representations will enable faster development of compiler infrastructures, the ability to share and compare analysis implementations, and in general quicker breakthroughs and evolution in the area of program analysis.
- PCx -- PCx is an interior-point predictor-corrector linear programming package. The code has been developed at the Optimization Technology Center, a joint venture of Argonne National Laboratory and Northwestern University.
- PETSc -- PETSc, the Portable, Extensible Toolkit for Scientific computation, is a suite of uni- and parallel-processor codes for solving large-scale problems modeled by partial differential equations. PETSc employs the MPI standard for all message-passing communication. The code is written in a data-structure-neutral manner to enable easy reuse and flexibility. PETSc has been used for a variety of large-scaled applications, including transonic flow, modeling vortex dynamics in high-temperature superconductors, parallelization of a 3D magnetostatics code, and study of compressible flows at low and transonic Mach number.
- Ptools -- Our Scalable Unix Tools project -- which offers parallel, scalable version of common Unix commands for parallel machines with a Unix on each node -- became the first official project of the Ptools Consortium. This organization seeks to promote de facto standards for parallel programming tools.
- PUMA2 -- PUMA2 is a bioinformatics system developed to enable evolutionary analysis of metabolism.
- ROMIO -- 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.
- RSL -- RSL is a runtime system library for implementing regular-grid models with nesting on distributed-memory parallel computers. RSL provides support for automatically decomposing multiple model domains and for redistributing work between processors at run time for dynamic load balancing. The interface to RSL supports Fortran77 and Fortran90. RSL has been used to parallelize the NCAR/Penn State Mesoscale Model.
- TAO -- The Toolkit for Advanced Optimization was developed under the DOE2000 program, 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.
- TRON -- TRON is a trust region Newton method for the solution of bound-constrained optimization problems. TRON uses a gradient projection method to generate a Cauchy step, a preconditioned conjugate gradient method with an incomplete Cholesky factoriza tion to generate a direction, and a projected search to compute the step. The use of projected searches, in particular, allows TRON to examine faces of the feasible set by generating a small number of minor iterates, even for problems with a large number of variables. As a result TRON is remarkably efficient.
- Voyager -- The purpose of the Voyager Multimedia Server is to archive and present data. Voyager is approaching 10 years of active development and use. It has provided significant experience in designing, building, deploying, and maintaining streaming multimedia software.
- ZeptoOS -- ZeptoOS is a research project studying very efficient and customized Linux kernels for petascale architectures with 10,000 to 1 million CPUs. Operating system and run-time software is strained by ultra-scale machines, and a variety of fascinating research topics are revealed at such amazing scale. Architectures such as IBM's BlueGene and Cray's XT3 are on the path toward petaflops and beyond, and make perfect testbeds for computer science explorations. ZeptoOS releases Linux kernel software, performance tools, and benchmarking suites for kernels. The ZeptoOS project is a collaboration between Argonne National Laboratory and the University of Oregon.