HPC Tools

Fraunhofer ITWM

 

GPI & MCTP

Industrial and scientific applications are processing more and more data requiring increasingly larger machines. Modern computer architectures are now multi-core: processing systems composed of independent cores.

This implies a paradigm shift on the development of software where developers must exploit the inherent parallelism of these architectures to be able to scale their applications.

At the same time, it is essential to feed all the cores with a contiguous data stream, just at that time when the computation actually needs them and to efficiently share the work among the cores. Most suitable, data transfers should not charge the CPU.

We face these problems with two easy to use, robust and scalable APIs staying consistently in the same programming model. On the cluster level, our Global address space Programming Interface (GPI) provides a low latency communication library which works at full wirespeed. On the node level, our Multi Core Threading Package (MCTP) library  supplements GPI with an optimized threading library which has full hardware awareness.

GPI

The Global address space Programming Interface (GPI) is a low latency communication library and a runtime system for scalable real-time parallel applications running on distributed systems with an IB or 10GE interconnect. It provides a partitioned global address space (PGAS) to the application which in turn has direct and full access to a remote data location. The whole functionality includes communication primitives, environment runtime checks, synchronization primitives such as fast barriers or global atomic counters, all which allow the development of parallel programs for large scale.

Focused on performance, by leveraging on the network interconnect hardware (wire-speed), it minimizes the communication overhead with overlap of communication and computation (true asynchronous communications).

The GPI provides a simple, reliable runtime system to handle large datasets, dynamic and irregular applications that are I/O and compute intensive.

MCTP

The MCTP supplements GPI on the node level. Software developers can no longer rely on an increasing clock speed. Multithreaded design is neccessary in order to achieve scalable applications.

The MCTP is a threading package to make multi-threading programming slightly more programmer friendly. It abstracts the native threads of the platform and provides complete state-of-the-art functionality to work with threads, threadpools, critical section and related topics such as synchronization or high frequency timer.

One of the key features of MCTP, clearly distinguishing it from other threading libraries, is its full hardware awareness including NUMA layout or cache to core mapping.

more information


 

GraPA

Graph Parallel Architecture

GraPA is a software framework that solves parallelization and portability issues that developers usually encounter when trying to use today's hardware platforms. The challenges they are facing are:

  1. ManyCore-Chips: As the number of cores on a chip keeps increasing, it becomes more and more inevitable to do serious thread programming. This involves the development of domain decomposition and load balancing strategies, avoidance of concurrency and synchronization issues and last but not least a taking care of non-uniform memory access (NUMA).
  2. Heterogeneous Hardware: As a supplement to conventional CPUs, we see additional accelerators, for example GPUs, moving into a typical compute nodes. From this heterogeneity, issues with code portability and confusion about the programming model arise. But not only is the problem about making the accelerator work, but also about getting a reasonable performance out of it.
  3. Clusters and Network Communication: On large clusters of compute nodes, one faces again the problems of domain decomposition, load balancing, concurrency and process synchronization.

GraPA aims at solving all these issues and providing an intuitive and easy-to-use interface for developers of simulation code. It is designed to fit the needs of typical engineering and natural sciences simulation projects. The details of our software solution are as follows:

more information