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.
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
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