Research & Development: Projects

Legacy Projects

Listed here are selected past research projects and topics in Computation that are no longer actively updated. These projects’ web pages do not support accessibility features.

About Babel

Babel is a high-performance language interoperability tool. The project is mainly developed at the Center for Applied Scientific Computing (CASC) at Lawrence Livermore National Laboratory (LLNL). Babel started as an internal Lab Directed Research and Development (LDRD) project in 2000 and has been under constant development since then. It is now funded mainly under the U.S. Department of Energy (DOE) Office of Science’s SciDAC program.

Babel currently fully supports C, C++, FORTRAN 77, Fortran 90/95, Fortran 2003/2008, Python, and Java. It won a prestigious R&D 100 award in 2006 for “The world’s most rapid communication among many programming languages in a single application.”

Our tool is based on the Scientific Interface Description Language (SIDL). SIDL is tailored to the needs of the scientific community and features support for complex numbers, structs, and dynamic multidimensional arrays. Babel is a compiler that generates glue code from SIDL interface descriptions. SIDL provides a modern object oriented programming model, even on top of traditional procedural languages. This includes automatic reference counting and resource (de)allocation. Code written in one language can be called from any of the supported languages. 

Babel focuses on high-performance language interoperability within a single address space. Full support for Remote Method Invocation (RMI) allows for the development of parallel distributed applications.

We also provide tools to automatically generate documentation from SIDL descriptions. An equivalent XML representation eases development of third-party tools.

hzip 1.0.1 is a C++ library for lossless compression of structured and unstructured meshes composed of cells with hypercube topology.

Focus Area: 
Compression Techniques

The sheer size of data poses significant problems in all stages of the visualization pipeline, from offline pre-processing of simulation data, to interactive queries, to real-time rendering. Moreover, visualization data is often unstructured in nature, which further complicates its management and representation. The goal of this project is to develop techniques for reducing bandwidth requirements for large unstructured data, both explicitly, by making use of data compression, and implicitly, by optimizing the layout of the data for better locality and cache reuse.

NEWSO5 is a Fortran MPI performance code developed at LLNL. This code measures the performance of MPI nonblocking communications using the communication pattern relevant to two-dimensional stencil-based computations. The name of the code is derived from the common name for this communication pattern, NEWS, for the North-East-West-South directions used to determine communication endpoints. The code tests all possible grid layouts for the total number of MPI tasks in the job. The original code exchanges messages of a size determined at compile time. The code was modified as part of the PSE/ASDE project to allow multiple message sizes to be tested during a single run. The last version, which uses a harness coded in C to invoke the original Fortran main program, is available for download. The simplicity of NEWS05 combines with its high message volume to serve as good communication system diagnostic program, particularly with extended runs lasting more than 30 minutes.

Focus Area: 
MPI

ODEPACK is a collection of Fortran solvers for the initial value problem for ordinary differential equation systems. The collection is suitable for both stiff and nonstiff systems and includes solvers for systems given in both explicit and linearly implicit forms. The solvers are written in standard Fortran 77, with a few exceptions and with minimal machine dependencies.

Overture is an object-oriented code framework for solving partial differential equations (PDEs). It provides a portable, flexible software development environment for applications that involve the simulation of physical processes in complex moving geometry . It is implemented as a collection of C++ libraries that enable the use of finite difference and finite volume methods at a level that hides the details of the associated data structures. Overture is designed for solving problems on a structured grid or a collection of structured grids. In particular, it can use curvilinear grids, adaptive mesh refinement, and the composite overlapping grid method to represent problems involving complex domains with moving components. We have also developed techniques for building grids on CAD geometries and for building hybrid grids that can be used with applications that use unstructured grids.

Focus Area: 
Solvers

ParFlow is a parallel, three-dimensional, variably saturated groundwater flow code that is especially suitable for large scale, high resolution problems ParFlow’s development and application has been on-going for more than 10 years and resulted in some of the most advanced numerical solvers and multigrid preconditioners for massively parallel computer environments that are available today.

By applying and extending ideas from data mining, image and video processing, statistics, and pattern recognition, we are developing a new generation of computational tools and techniques that are being used to improve the way in which scientists extract useful information from data.  Sapphire technology is being applied to problems in a variety of application areas including plasma physics experiments and simulations, remote sensing imagery, video surveillance, climate simulations, astronomy, and fluid mix experiments and simulations.

SOAR (Stateless, One-pass Adaptive Refinement) is a view-dependent mesh refinement and rendering algorithm.

Focus Area: 
Visualization and Scientific Data Analysis

Sphinx, an integrated parallel microbenchmark suite, consists of a harness for running performance tests and extensive tests of MPI, Pthreads and OpenMP. LLNL adaptations include extensive tests of the Pthreads interface and integration of the LLNL OpenMP Performance Suite. Sphinx is highly portable, and the test harness provides a flexible mechanism for running performance tests. The entire suite is implemented in C and has been run on a wide variety of platforms.

Focus Area: 
OpenMP