SkIE: a heterogeneous environment for HPC applications

Bruno Bacci, Marco Danelutto, Susanna Pelagatti and Marco Vanneschi

Abstract

Technological directions for innovative HPC software environments are discussed in this paper. We focus on industrial user requirements of heterogeneous multisciplinary applications, performance portability, rapid prototyping and software reuse, integration and interoperability of standard tools. The various issues are demonstrated with reference to the PQE2000 project and its programming environment SkIE (Skeleton-based Integrated Environment). SkIE includes a coordination language, SkIEcl, allowing the designers to express, in a primitive and structured way, efficient combinations of data parallelism and task parallelism. The goal is achieving fast development and good efficiency for applications in different areas. Modules developed with standard languages and tools are encapsulated into SkIEcl structures to form the global application. Performance models associated to the coordination language allow powerful optimizations to be introduced both at run time and at compile time without the direct intervention of the programmer. The paper also discusses the features of the SkIE environment related to debugging, performance analysis tools, visualization and graphical user interface. A discussion of the results achieved in some applications developed using the environment concludes the paper.