Scapos Offers Efficient and Scalable Multicore Programming with GPI

One of the exciting innovations presented at the ISC'10 conference in Hamburg was GPI, a new interface for application development for multicore architectures. GPI stands for Global Address Space Programming Interface, it implements the PGAS (Partitioned Global Address Space) programming model on the API level, so that standard programming languages can exploit the advantages of PGAS.

The advantages of GPI are:

The global adress space which makes programming more productive.

Its true asynchronous communication model.

The performance at wire speed.

Excellent scalability on large multicore systems.

Several benchmarks demonstrate the impressive scalability of GPI, also in cases where MPI scales poorly, e.g., in all-to-all type communication patterns.

Features

GPI directly extends the simple thread-based programming model from the node level to the cluster level. GPI works with Posix threads or with the optimized hardware-aware multicore thread package MCTP.

MCTP provides complete state-of-the-art functionality to work with threads, thread pools, critical sections and synchronization and delivers leading performance values. MCTP is designed to work together with GPI.

GPI handles all communication in a truly asynchronous way without interrupting the CPU and allows perfect overlapping with computation.

GPI uses RDMA calls which make it a great choice for Infiniband interconnects and RoCE (RDMA over Converged Ethernet) networks.

GPI is lightweight and easy to use and includes additional functionality like fast barriers, collective operations or atomic counters. Together with the simple execution model and the extensive environment checks, GPI with MCTP is the choice to program very large systems. It eliminates the need for hybrid OpenMP/MPI programming on clusters with multicore nodes, since GPI is a flat thread model throughout the cluster.

Proof points

GPI was developed by Fraunhofer Institute for Industrial Mathematics (ITWM) as their in-house tool to accelerate non-trivial industrial applications where MPI did not scale, and it has proven its robustness over several years.

The Norwegian oil company Statoil uses seismic imaging codes based on GPI, Are Osen from Statoil confirms that "our parallel seismic imaging code is based on GPI, since it requires random access to distributed data. We are really satisfied with the performance, the multicore scalability and the robustness of GPI."

Pre-Stack Pro, a full survey pre-stack visualization and data analysis software package (www.sharpreflectionz.com) uses GPI to manage large data volumes interactively.

The TAU code from DLR, a complex CFD code for aircraft simulation, is currently re-written with GPI to achieve higher scalability than with MPI.

Availability

GPI and MCTP are available as licensed products for C, C++ and Fortran under Linux through Fraunhofer's marketing partner Scapos. Free test licenses are available to all developers who look for an alternative to MPI and who want to evaluate the potential of the PGAS programming model. Contact gpi@scapos.com.