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