Careers | Phone Book | A - Z Index

UPC++

upcxx blue converted

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). » Read More

GASNet-EX

gasnet ex black square

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 such as UPC, UPC++, Co-Array Fortran, Legion, Chapel, and many others. GASNet-EX is the successor to the GASNet-1 system, redesigned to accommodate the emerging needs of exascale supercomputing. » Read More

Unified Parallel C (UPC)

UPC-CFD-large.jpg

Unified Parallel C (UPC) is an 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. » Read More

ExaBiome

genome

Microbiomes are integral to the environment, agriculture, health and biomanufacturing, yet we've sequenced less than one percent of the millions of species in the world. The ExaBiome team is developing exascale algorithms and software to tackle this challenge. The HipMer Extreme Scale De Novo Genome Assembler uses UPC, UPC++ and GASNet to achieve robust scaling on modern supercomputers. » Read More

Pagoda Project

330px Horyu ji09s3200

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. » Read More

     

The CLaSS Group is recruiting! Available positions include:
CLaSS Group Lead
C++ Programmer/Software Engineer
HPC Application Developer

 

The CLaSS Group mission is to research, design, and implement new models, features and optimizations of parallel programming languages 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 languages, 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, Operating Systems / Runtimes, and the software stack for quantum computers.

Research

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.

Berkeley Container Library

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.

TOP500

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…

PyFloT

Tuning floating point precision using dynamic program information and temporal locality. The goal of this tool is to help finding a mixed precision solution to reduce execution time while maintaining some notion of correctness.

Past Projects

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

More from Research »

Publications

UPC++: An Asynchronous RMA/RPC Library for Distributed C++ Applications

November 10, 2020

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

October 30, 2020

UPC++ v1.0 Specification, Revision 2020.10.0

October 30, 2020

UPC++: An Asynchronous RMA/RPC Library for Distributed C++ Applications

May 27, 2020

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

March 13, 2020

UPC++ v1.0 Specification, Revision 2020.3.0

March 12, 2020

UPC++: A PGAS/RPC Library for Asynchronous Exascale Communication in C++

February 6, 2020

UPC++: Asynchronous RMA and RPC Communication for Exascale Applications

February 4, 2020

GASNet-EX: RMA and Active Message Communication for Exascale Programming Models

February 3, 2020

UPC++ Tutorial

December 16, 2019

More from Publications »