Software Infrastructure for Science
Software infrastructure is the backbone of modern science. The integration of scientific software components into data frameworks is essential to support the wide variety of scientific domains, building tools and models that allow scientists to move from the “raw” data generated by simulations, experiments, and observations, to a combined quality-controlled view of the data that they can easily manipulate to gain scientific insight. Such a software infrastructure allows the extensive work of “cleaning” and transforming data in custom data pipelines, and often there will also be a strong user interface component to either the pipelines or the final data products.
LBNL Software engineers and user experience designers are working with scientists across multiple domains, as well as the NERSC and ESnet facilities, to bring a distinguished approach to creating these scientific infrastructures with an emphasis on usability and reproducibility.
GASNet-EX is a language-independent, networking middleware layer that provides network-independent, high-performance communication primitives for High-Performance Computing (HPC). Unlike the dominant MPI communication standard, the GASNet-EX interface and implementation are designed specifically to meet the needs of alternative programming models on emerging exascale systems. GASNet-EX provides communication services for many local and external projects, including: UPC++, Legion, Chapel, Omni Xcalable, Devastator, Berkeley Container Library, and many UPC and CAF/Fortran compiler runtimes. Contact: Paul Hargrove (Hargrove on the Web)
UPC++ is a C++ library for HPC that supports Partitioned Global Address Space (PGAS) programming, and is designed to interoperate smoothly and efficiently with MPI, OpenMP, CUDA and AMTs. It leverages GASNet-EX to deliver low-overhead, fine-grained communication, including Remote Memory Access (RMA) and Remote Procedure Call (RPC). Contact: Paul Hargrove (Hargrove on the Web)
Unified Parallel C (UPC) is a PGAS extension of the C programming language designed for high performance computing on large-scale parallel machines. The language provides a uniform programming model for both shared and distributed memory hardware. Berkeley UPC is a portable, high-performance implementation of the UPC language using GASNet for communication. Contact: Paul Hargrove (Hargrove on the Web)
The Berkeley Container Library (BCL) is a set of generic, cross-platform, high-performance data structures for irregular applications, including queues, hash tables, Bloom filters and more. BCL is written in C++ using an internal DSL called the BCL Core that provides one-sided communication primitives such as remote get and remote put operations. The BCL Core has backends for MPI, OpenSHMEM, GASNet-EX, and UPC++, allowing BCL data structures to be used natively in programs written using any of these programming environments. Contact: Katherine Yelick (Yelick on the Web)
LBNL leads the software development team to ensure timely, reliable, documented, usable and transparent releases of the Institute for the Design of Advanced Energy Systems (IDAES) project. Contact: Dan Gunter, the IDAES team
The U.S. Department of Energy’s (DOE’s) Institute for the Design of Advanced Energy Systems (IDAES) is the winner of a prestigious 2020 R&D100 award, which recognizes the developers of the 100 most technologically significant products introduced into the marketplace in the last year. Read More »
Berkeley Lab's Scott Baden leads a project directed at providing lightweight communication and global address space support for exascale applications. The effort is known as the Pagoda project. ECP Communications spoke with Baden about the effort. Read More »
As high-performance computers bring more power to programmers, communication often limits an operation’s overall speed. Read More »
Just one year after the DOE's Exascale Computing Program began funding projects to prepare scientific applications for exascale supercomputers, the Pagoda Project has successfully reached a major milestone: making its open source software libraries publicly available as of September 30, 2017. Read More »