OpenSHMEM 1.4 for Epiphany

OpenSHMEM 1.4 for Epiphany is available now as open source software on GitHub [0]. Compared to the previous announcement [1], OpenSHMEM 1.4 provides new functionality for Epiphany including, but not limited to:

  • Adding shmem_sync_all and shmem_sync to provide PE synchronization without completing pending communication operations
  • Adding shmem_test function, which tests whether a variable on the local PE has changed
  • Adding shmem_calloc function, which allocations and zeros an array
  • Greatly expanding the type support for Atomic Memory Operations (AMOs) and Remote Memory Accesses
  • Adding fetching and non-fetching bitwise AND, OR, and XOR bitwise AMOs

There are many other improvements and clarifications which may be found in the official OpenSHMEM 1.4 specification [2]. Development of the OpenSHMEM for Epiphany implementation continues and many examples and automated tests have been written. Feedback and bug reports are welcome on GitHub or in the Parallella Forums. If you find this work useful or you use it in your research, please consider citing the paper in your references [3].

[0] ARL OpenSHMEM for Epiphany (https://github.com/USArmyResearchLab/openshmem-epiphany)
[1] OpenSHMEM for Epiphany (https://www.parallella.org/2017/04/26/openshmem-for-epiphany/)
[2] OpenSHMEM 1.4 Specification (http://openshmem.org/site/sites/default/site_files/OpenSHMEM-1.4.pdf)
[3] Ross J., Richie D. (2016) An OpenSHMEM Implementation for the Adapteva Epiphany Coprocessor. In: Gorentla Venkata M., Imam N., Pophale S., Mintz T. (eds) OpenSHMEM and Related Technologies. Enhancing OpenSHMEM for Hybrid Environments. OpenSHMEM 2016. Lecture Notes in Computer Science, vol 10007. Springer, Cham (online, arXiv)