ARL OpenSHMEM for Epiphany
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
common 64-bit timer Dec 4, 2017
example remove unrequired e-lib May 4, 2018
src using gnu toolchain names rather than aliases Mar 13, 2018
test using gnu toolchain names rather than aliases Mar 13, 2018
.gitignore adding .e32 to the list Dec 4, 2017
Makefile Updating makefiles to improve run/check process Dec 20, 2017 more typos Dec 21, 2017

ARL OpenSHMEM for Epiphany

OpenSHMEM is a standardized interface to enable portable applications for partitioned global address space (PGAS) architectures. This repository includes the ARL OpenSHMEM for Epiphany implementation for optimized one-sided communication, atomic, and collective operations for the Adapteva Epiphany microarchitecture on the Parallella board (see ./src). Also included are microbenchmarks (see ./example) and test codes (see ./test). These codes require the COPRTHR-2 SDK. The library may be used without COPRTHR-2 and has been tested with the Parabuntu 2016.11.1 release.

The OpenSHMEM implementation is based on the OpenSHMEM 1.4 Specification

The software was developed at the US Army Research Laboratory, Computational Sciences Division, Computing Architectures Branch.


Code has been tested on the 2016.11.1 and 2015.1 Parallella images, but please use the former.

You must download and install the COPRTHR-2 SDK to be able to run the ./test and most ./example codes. The library is free for non-commercial use.

Although it's not required to build the library, a Makefile is provided if you're using the vendor-provided eSDK.


You may type make to build all directories, or make [src|example|test] to build individual subdirectories. Running make run will run example codes and a selection of test codes. Running make check will run all of the test codes with various parameters. There is no installation, but you should link to the libshmem.a library and use the appropriate include path for shmem.h.

If you're not using the COPRTHR-2 SDK, you can build the library for the eSDK: cd ./src; make -f Makefile.esdk


If you are using this work in an academic publication, please include the following reference in your 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