INTONE will produce a novel programming environment for clusters of shared-memory processors based on the OpenMP standard, and innovative tools for the performance analysis of applications using this system or pure OpenMP. The focus is on reducing the coding, tuning and maintenance effort for concurrent applications on shared-memory systems or clusters of same, and on providing advanced performance assistant functionality that will guide and support non-expert users. The concept and the implementation will be evaluated in light of the porting of two industrial simulation codes. Main project results will be a prototype implementation of the Cluster Programming System complete with OpenMP compilers, a specification of an instrumentation interface and an implementation of an instrumentation component, a state-of-the-art performance analysis tool, and the above Performance Assistant. Also, OpenMP ports of two significant industrial application will be produced.
To develop a powerful performance analysis system for OpenMP applications, consisting of a graphical performance analysis tool, an advanced Performance Assistant assisting the non-expert user, and the necessary instrumentation facilities. Emphasis will be on ease-of-use for non-specialized users;
To define an instrumentation interface for OpenMP compilation and execution systems. To advance the state-of-the-art in programming shared-memory clusters by extending the OpenMP API by performance-oriented communication statements creating a Cluster Programming System integrated with the performance analysis system;
To evaluate these components with application software from industrial application writers, making sure that end-users needs are met;
To demonstrate that OpenMP, the Cluster Programming System and the performance tools can considerably improve the efficiency of writing, tuning and maintaining parallel applications.
Specification of the OpenMP instrumentation interface. Specification and implementation of a portable OpenMP runtime system complete with an advanced instrumentation component, based on prior work (Pallas, UPC, LU). Development of a complete OpenMP compilation and execution environment for Fortran and C/C++ applications targeting the above runtime system, and including functionality for the controlled insertion of instrumentation probes, based on prior work (UPC, LU). Specify and implement a Cluster Programming System extending OpenMP that will allow the efficient use of clustered shared-memory platforms (LU, UPC). Create a graphical performance analysis tool for OpenMP applications based on a well-proven and highly successful tool, including full support for the cluster programming system (TU-Dresden, Pallas). Develop a Performance Assistant for OpenMP performance analysis tool that will guide a non-expert user in the performance analysis and optimisation process (TU-Dresden, Pallas). Evaluate the above software component and provide feedback for the development process by porting and optimising of two significant industrial applications by industrial end-users (ENEL, LMS). Dissemination of project results (WWW, conferences, articles, User's Forum, INTONE workshops), exploitation of tool components and application ports, (all).
Month 6: release of the OpenMP instrumentation interface;
Month 12: availability of prototype tools;
Month 18: first porting results, evaluation results;
Month 24: final implementation of OpenMP compilation systems, OpenMP performance tool; prototype implementation of Performance Assistant, Cluster Programming System;
Month 30: Final optimised application ports, final evaluation results, final versions of Performance Assistant, Cluster Programming System.
Funding SchemeCSC - Cost-sharing contracts
100 44 Stockholm