Friday, September 9, 2016

GPI-2

"GPI-2 is an API for the development of scalable, asynchronous and fault tolerant parallel applications.  GPI-2 is the second generation of GPI, a product of the CC-HPC at the Fraunhofer ITWM that will continue to be supported and licensed .

GPI-2 implements the GASPI specification (www.gaspi.de), an API specification which originates from the ideas and concepts GPI. GPI-2 is an API for asynchronous communication. It provides a flexible, scalable and fault tolerant interface for parallel applications.

You can have a look at the API or have a look at some examples. You can also browse through the source code on Github. To get an overview of features and how to compile and run a parallel program,  see the GASPI tutorial.

 GASPI is a Partitioned Global Address Space (PGAS) API. It aims at scalable, flexible and failure tolerant computing in massively parallel environments. GASPI targets a paradigm shift from bulk-synchronous two-sided communication patterns towards an asynchronous communication and execution model. To that end GASPI leverages one-sided RDMA-driven communication with remote completion in a Partitioned Global Address Space.

Similar to MPI, GASPI is an API for parallel computing on distributed memory architectures.and relies on SPMD/MPMD execution. Unlike MPI however, GASPI targets asynchronous data-flow implementations rather than bulk-synchronous message exchange. Contrary to MPI, GASPI allows for a highly flexible configuration of the required resources and features low-level support for fault-tolerant execution.

In contrast to other efforts in the PGAS community, GASPI is neither a new language (like e.g. Chapel from Cray), nor an extension to a language (like e.g. Co-Array Fortran). Instead -- very much in the spirit of MPI -- it complements existing languages like C/C++ or Fortran with a PGAS API which enables the application to leverage the concept of the Partitioned Global Address Space. In contrast to, for example, OpenShmem or Global Arrays, GASPI is not limited to a single memory model, but provides configurable and yet globally accessible memory segments. GASPI is interoperable with MPI and allows for incremental porting of legacy applications."

http://www.gpi-site.com/gpi2/

http://www.gpi-site.com/gpi2/gaspi/

https://github.com/cc-hpc-itwm/GPI-2

No comments:

Post a Comment