LBL

GASNet

UCB


Download
Specification
Publications
Performance
Users/Links
Bugs
Contact

NEWS:
  • March 31, 2023: GASNet-EX 2023.3.0 released.
     
  • October, 2022: 20th Anniversary of GASNet!
    The GASNet team is proudly celebrating 20 years of providing high-quality/high-performance middleware for alternative HPC programming models. Most of you reading this are part of a community of supportive users and contributors, you have our sincere thanks for making this milestone possible!
    For more information, see this coverage in HPCWire.
     

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++, Fortran coarrays, 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. GASNet stands for "Global-Address Space Networking".
The design of GASNet is partitioned into two layers to maximize porting ease without sacrificing performance: the lower level is a narrow but very general interface called the GASNet core API - the design is based heavily on Active Messages, and is implemented directly on top of each individual network architecture. The upper level is a wider and more expressive interface called the GASNet extended API, which provides high-level operations such as remote memory access and various collective operations.

We've written a network-independent reference implementation of the extended API purely in terms of the core API, which allows GASNet (and its portable clients) to quickly and easily be ported to a new network architecture by re-implementing only the minimal core API. GASNet is structured such that implementers can choose to additionally bypass certain functions in the reference implementation of the extended API and implement them directly on the hardware to improve performance of specific operations when hardware support is available (e.g. RDMA support for puts/gets or hardware-offloaded atomic memory operations).

GASNet

System diagram showing GASNet layers

Most clients use calls to the extended API functions to implement the bulk of their communication work (thereby ensuring optimal performance across platforms). However the client is also permitted to use the core active message interface to implement non-trivial language-specific or compiler-specific communication operations which would not be appropriate in a language-independent API (e.g. implementing distributed language-level locks, distributed garbage collection, collective memory allocation, etc.). The AM features of the core provide a powerful extensibility mechanism which allows clients to implement a wide variety of specialized communication operations. 


GASNet-EX: A major specification upgrade and implementation renovation effort is currently in progress:
GASNet-EX

Evolving GASNet-EX API:
GASNet-EX API description, v0.16

GASNet-EX is a superset of GASNet-1.
The API description above is currently written as a "diff" against the following two documents:
  • GASNet-1 Specification, v1.8.1:    PDF      HTML      Text      BibTeX

  • GASNet-1 Extensions for Non-contiguous Data Transfer (Vector, Indexed, Strided):    PDF      BibTeX


GASNet-EX Implementation Download:

GASNet-EX Full Source Release
(all EX-supported conduits and platforms)
GASNet-2023.3.0.tar.gz   (2.3MB)
MD5 Hash = 1037748d20bc65b255367489c8aa29b3
Browse the archive
README   ChangeLog   BSD-3-Clause-LBNL license
GASNet Portability Tools
(NO communication conduits, GASNet Tools only)
GASNet_Tools-2023.3.0.tar.gz   (792KB)
MD5 Hash = c08c0b8e62d3cd0f585ff48eb237d0a2
README-tools

Download Mirrors:


GASNet includes support for the following:

GASNet has been tested on a number of systems (see README for a complete list):

Work continues on GASNet implementations for other platforms, and code contributions are appreciated (please send email if you're interested in developing in the GASNet-EX code base).

GASNet Performance Results

GASNet Bug Database


Publications/Presentations: (BibTeX for selected publications)

Citing GASNet? Please use this paper:
Other Papers: Presentations and Posters:

Systems/Projects using GASNet

Pagoda system stack

Pagoda HPC Software Stack

Production GASNet clients

Example UPC++ Applications and Frameworks using GASNet-EX (also see our IPDPS'19 paper!)

Example Legion Applications and Frameworks using GASNet-EX (also see our SC21 poster!)

Example Chapel Applications and Frameworks using GASNet-EX (also see our CHIUW'2022 presentation!)

Legacy/Experimental GASNet clients

Alternative GASNet Implementation Research

Other Related Links

GASNet is developed and maintained by the Pagoda Project in the CLaSS Group at Lawrence Berkeley National Laboratory,
funded by the DOE Office of Science through the Exascale Computing Project (ECP); and by the Department of Defense.

Contact and Support information:

Bug reports and Feature Requests : Please do NOT send bug reports or code via email to individual developers. Use our Bugzilla server for reporting any bugs in GASNet. You may find an instant solution to your problem by searching the bug database!

GASNet mailing lists

List
Subscribers
Purpose
public GASNet users list
Join here or
General questions or inquiries regarding the installation or use of GASNet.
GASNet developers (multi-institution)
Development forum: internal design discussions, etc.
GASNet staff at LBNL
Private communication or non-technical questions
[email protected]
public, read-only list
Join here or
GASNet release announcements (<5 messages / year)

We are interested in supporting GASNet on as wide a variety of HPC systems as possible. If your system or network is not supported and you are willing to let us use your resources for development, please contact us!

We very much appreciate your feedback. Thank you for using GASNet!


Page last updated Saturday June 03, 2023
BitBucket