Skip to navigation Skip to content
Careers | Phone Book | A - Z Index
Computer Languages & Systems Software
class map v2

CLaSS embraces remote work!

Although headquartered in Berkeley, California,
our group members are geographically distributed across the continental U.S.

Pagoda Logo

Pagoda Project

The Pagoda Project researches and develops cutting-edge software for implementing high-performance applications and software infrastructure under the Partitioned Global Address Space (PGAS) model.

UPC++ Logo

UPC++

UPC++ is a C++ PGAS library that supports low-overhead, fine-grained communication, including Remote Memory Access (RMA) and Remote Procedure Call (RPC).

GASNet-EX Logo

GASNet-EX

GASNet is a communication middleware library providing network-independent, high-performance Remote Memory Access and Active Messages.
It powers UPC, UPC++, Legion, Chapel, Fortran and other models.

Visualization of UPC CFD application

Unified Parallel C (UPC)

UPC is a PGAS extension to C designed for high performance computing on large-scale parallel machines. The language provides a uniform programming model for shared and distributed memory hardware.

caffeine border v4

Caffeine

Caffeine is a runtime library that portably implements Fortran 2018 parallel features over GASNet-EX

genome

ExaBiome

ExaBiome is developing exascale algorithms and software to assemble genome sequences. The MetaHipMer Genome Assembler uses UPC, UPC++ and GASNet to achieve robust scaling on modern supercomputers.

Visualization of SIMCov simulation using UPC++

SIMCov

SIMCov is a parallel 3-D agent-based cellular-level model of COVID-19 viral progression in human lungs, written using UPC++.

BQSKit Quantum Computer

BQSKit

The Berkeley Quantum Synthesis Toolkit is a superoptimizing quantum compiler and research vehicle that combines ideas from several projects into an accessible and extensible software suite.


The Computer Languages & Systems Software (CLaSS) group researches, designs, and implements new libraries, features and optimizations supporting parallel programming models and their execution environments for leading-edge High Performance Computing (HPC) systems. Research topics include but are not limited to design, implementation and optimization of parallel programming models, compilers, operating systems, and advanced communication and run-time libraries. This builds on the group’s long history of leadership in this area with the development of the GASNet communication library, UPC programming language, UPC++ library, data-centric programming models, OS research, and the software stack for quantum computers.


SC23 Tutorial: Introduction to High-Performance Parallel Distributed Computing using Chapel, UPC++ and Coarray Fortran (Sun Nov 12, 2023)

Register now for this in-person tutorial, delivered at SC23 in Denver, CO.


20-year Anniversary of GASNet

The GASNet team is proudly celebrating 20 years of providing high-quality/high-performance middleware for alternative HPC programming models. 

See the news article featured in HPCWire for more details.

Research

The ECP Pagoda Project

The Pagoda Project researches and develops cutting-edge software for implementing high-performance applications and software infrastructure under the Partitioned Global Address Space (PGAS) model. The project is primarily funded by the Exascale Computing Project, and interacts with partner projects in industry, government and academia.
The Pagoda software stack consists of a communication portability layer, GASNet, and productivity layers: UPC++ and Berkeley UPC.

GASNet

GASNet is a language-independent, networking middleware layer that provides network-independent, high-performance communication primitives including Remote Memory Access (RMA) and Active Messages (AM). It has been used to implement parallel programming models and libraries such as UPC, UPC++, Co-Array Fortran, Legion, Chapel, and many others. The interface is primarily intended as a compilation target and for use by runtime library writers (as opposed to end users), and the primary goals are high performance, interface portability, and expressiveness.

UPC++

UPC++ is a C++ library 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).

Berkeley UPC

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.

ExaBiome

The ExaBiome project is developing HipMer, the first high-quality end-to-end de novo genome assembler designed for extreme scale analysis. HipMer is a PGAS application, and the main software dependencies are the UPC language and UPC++ library, both of which use GASNet-EX for communication. HipMer’s high performance is based on several novel algorithmic advancements attained by leveraging the efficiency and programmability of the one-sided communication capabilities of the Unified Parallel C (UPC), and RPC calls from the UPC++ Library, including optimized high-frequency k-mer analysis, communication avoiding de Bruijn graph traversal, advanced I/O optimization, and extensive parallelization across the numerous and complex application phases.

SIMCoV

Spatial Immune Model of Coronavirus (SIMCoV) is a scalable computational model written in UPC++ that simulates hundreds of millions of lung cells, including respiratory epithelial cells and T cells. SIMCoV replicates viral growth dynamics observed in patients and shows that spatially dispersed infections lead to increased viral loads. The model shows how the timing and strength of the T cell response can affect viral persistence, oscillations, and control. By incorporating spatial interactions, SIMCoV provides a parsimonious explanation for the dramatically different viral load trajectories among patients by varying only the number of initial sites of infection, and the magnitude and timing of the T cell immune response.

symPACK

symPACK is a sparse symmetric matrix direct linear solver, written using UPC++

TOP500 Supercomputing Sites 

The TOP500 project was started in 1993 to provide a reliable basis for tracking and detecting trends in high-performance computing. Twice a year, a list of the sites operating the 500 most powerful computer systems is assembled and…

BQSKit

The Berkeley Quantum Synthesis Toolkit (BQSKit) is a superoptimizing quantum compiler and research vehicle that combines ideas from several projects at LBNL into an easily accessible and quickly extensible software suite.

Caffeine: CoArray Fortran Framework of Efficient Interfaces to Network Environments

Caffeine is a parallel runtime library that aims to support Fortran compilers with a programming-model-agnostic application binary interface (ABI) to various communication libraries. Current work is on supporting the ABI with the GASNet-EX or with POSIX processes. Future plans include support for an alternative MPI back end.

Inference Engine

Inference-Engine is a software library for researching ways to efficiently propagate inputs through deep, feed-forward neural networks exported from Python by the companion package nexport.

nexport

nexport is a lightweight Python package which empowers deep learning developers in exporting the trainable parameters of deep neural networks to human-readable and transferable file types

Past CLaSS Group Projects

Projects from current and former CLaSS members that have been replaced by follow-on work or are no longer actively being…

Recent Publications

symPACK: A GPU-Capable Fan-Out Sparse Cholesky Solver

November 13, 2023

Introduction to High-Performance Parallel Distributed Computing using Chapel, UPC++ and Coarray Fortran

November 12, 2023

Introduction to High-Performance Parallel Distributed Computing using Chapel, UPC++ and Coarray Fortran (CUF23)

July 26, 2023

PGAS Programming Models: My 20-year Perspective

June 2, 2023

UPC++ v1.0 Specification, Revision 2023.3.0

March 31, 2023

UPC++ v1.0 Programmer’s Guide, Revision 2023.3.0

March 30, 2023

Producing Software for Science with Class

March 1, 2023

Framework for Extensible, Asynchronous Task Scheduling (FEATS) in Fortran

February 15, 2023

UPC++ and GASNet: PGAS Support for Exascale Apps and Runtimes (ECP'23)

January 17, 2023

Berkeley Lab’s Networking Middleware GASNet Turns 20: Now, GASNet-EX is Gearing Up for the Exascale Era

December 7, 2022