GaspiCxx is a C++ interface for the communication library GPI-2. It is available on github.
Introduction
GaspiCxx makes the use of GPI-2 productive and efficient, both enabling rapid development of new applications, as well as easing the porting of existing ones by providing an abstract and powerful communication management. For example, using GaspiCxx, a shared memory parallel TD-DG solver for Maxwell’s equations could be extended to a scalable distributed memory implementation within an afternoon. Using the GPI-2 communication model has never been as easy.
Features
GaspiCxx aims at an abstraction for the native C based communication interface of GPI-2 without impacting the underlying performance. The interface design makes the explicit management of communication resources required by the native C interface fully transparent to the application. They do not need to be managed explicitly any more. Instead, objects with exclusive and auto-managed resources for groups, queues, segments are provided by GaspiCxx. The dynamic management of segment memory and segment synchronization primitives is provided by allocators. The single-sided and the passive communication are built on top of that. Allocations within the partitioned global address space and the respective synchronization primitives can be easily connected with each other on the source and the target side for efficient communication. On top of that, GaspiCxx provides collectives beyond the collectives natively provided by GPI-2.
Advantages
- High Productivity
- Full Performance
- Easy to use
- Transparent resource management
- Exclusive resource usage