The INTERTWinE project addresses the problem of programming model design and implementation for the Exascale.
The first Exascale computers will be very highly parallel systems, consisting of a hierarchy of architectural levels. To program such systems effectively and portably, application programming interface (APIs) with efficient and robust implementations must be ready in the appropriate timescale. A single, "silver bullet" API which addresses all the architectural levels does not exist and seems very unlikely to emerge soon enough. We must therefore expect that using combinations of different APIs at different system levels will be the only practical solution in the short to medium term. Although there remains room for improvement in individual programming models and their implementations, the main challenges lie in interoperability between APIs, both at the specification level and at the implementation level. In addition to interoperability directed at specific API combinations, INTERTWinE tackles interoperability on a more general level with the help of a directory cache service and a resource manager.
The project is working on a number of different APIs, and we have identified a set of combinations between them, which are of interest to applications developers and which raise interoperability issues. We have a set of applications and kernels, which we are porting to the various API combinations so that we can have concrete instances with which to motivate our work on specifications and runtime implementations, be able to test out new ideas in runtime implementations, and be able to provide example code to developers.
The project team is designing and producing reference implementations of two sets of auxiliary APIs, which are designed to provide support for better interoperability between runtimes:
- A Resource Manager to allow allocation and negotiation of hardware resources within a node between different runtimes
- A Directory Cache to allow task based runtime to operate seamlessly and efficiently on distributed systems.
INTERTWinE partners are very active in pursuing interoperability issues and new API developments in relevant standards bodies: the MPI Forum, GASPI Forum, and the OpenMP ARB. New ideas are being implemented and tested out in the various API runtime implementations that project members are responsible for.
The project team are also delivering a series of training courses, for which they are also developing new materials, and are producing a series of Best Practice Guides as reference manuals for developers.