PROPHET: Parallelization of sequential algorithms in scientific and engineering applications which are deployed in heterogeneous interconnected platforms

In this project we propose the study and development of a unified strategy to build parallel programs, with immediate application to engineering problems. More precisely, we propose to use it in complex problems, such as the manipulation of hyperspectral images, and civil engineering simulation. These applications are based on different programming structures, that poses important challenges for its execution in heterogeneous, distributed devices.

The main goal is then to develop an unified strategy to program these kind of applications, based on the definition of a set of basic execution and communication operators that allow: (a) To express the kind of computing needed, and (b) to allow their transcription in terms of the native programming model techniques for each computing resource being used, including processors, accelerators, and communication layers. These techniques will allow to develop applications that will be able to deploy and adapt efficiently by themselves to a heterogeneous, distributed environment, reaching their maximum efficiency in terms of performance and energy consumption.

Objectives

In this project the hipotesis is that it is possible to define a small set of operators to describe the interaction between computation tasks and communications in heterogeneous distributed parallel applications meeting some criteria. This will allow to express the considered case study parallel applications as a combination of computation functions and syncronization operations, allowing the deployment of an application in multiple heterogeneous distributed devices, and making an efficient and sustainable use of the available resources.

The final objective is to increase in a sustained way the productivity of the applications in the fields of hyperspetral image processing and civil engineering thanks to the use of generic clusters made by heterogeneous computers with different types of accelerators.