Skip to content
Dependency-free reference implementation of the OpenSHMEM standard API for multi-core processors
C M4 Perl Makefile Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


OpenSHMEM is a standardized interface to enable portable applications for partitioned global address space (PGAS) architectures. This repository includes the BDT OpenSHMEM implementation for optimized one-sided communication, atomic, and collective operations for multicore and manycore processors (see ./src) and test codes (see ./test).

The OpenSHMEM implementation is based on the OpenSHMEM 1.4 Specification

This software was developed by the US Army Research Laboratory, Computational Sciences Division, Computing Architectures Branch, and Brown Deer Technology.

This version of the software was developed by Brown Deer Technology and released under the open-source 2-Clause BSD License.


Presently, a POSIX-compliant development environment is needed, including GCC, GNU Make, M4, Bash (Unix shell), and Perl tools. No external support libraries are required (i.e. no network interfaces) as the target platforms are multi-core processors.


From the top level directory, type make to build, or make check to build and check.

In ./test, executing make run will execute most test codes with a default number of PEs and make check will run all of the test codes with various parameters while checking for correctness. There is no installation, but you should link to the libshmem.a static library and use the appropriate include path for shmem.h found within ./src or subdirectories.


This software was originally developed for the Adapteva Epiphany Coprocessor and described in the following paper:

J. Ross and D. Richie, "An OpenSHMEM Implementation for the Adapteva Epiphany Coprocessor," OpenSHMEM and Related Technologies. Enhancing OpenSHMEM for Hybrid Environments, vol. 10007, pp. 146-159, Dec. 2016, doi:10.1007/978-3-319-50995-2_10

You can’t perform that action at this time.