« Notre objectif est de faciliter la transformation du code pour son exécution sur des plateformes parallèles et hétérogènes combinant processeurs multicœurs, cartes graphiques multiples et matériel reconfigurable », explique José Daniel García, coordinateur du projet et professeur au département d'informatique de l'UC3M. « Nous avons obtenu des gains très significatifs en termes de performances et d'efficacité énergétique, comparables à ceux obtenus par un développement manuel. La différence réside dans le fait qu'un développement manuel nécessite des mois d'ingénierie, tandis que notre processus semi-automatique nous permet d'atteindre les mêmes résultats en quelques jours. ».
Ces calculs trouvent des applications dans divers secteurs, tels que la santé (prédiction de l'amarrage des protéines), les transports (surveillance des systèmes ferroviaires), la robotique (vision stéréoscopique et navigation) ou l'industrie (analyse des défauts de fabrication des pièces).
Le projet REPARA vise à rendre accessibles aux utilisateurs les gains d'efficacité énergétique et de performance de ces systèmes informatiques, sans les efforts de développement considérables généralement associés à de telles architectures complexes. La clé de cette réussite réside notamment dans la « refactorisation » du code source, une technique de génie logiciel permettant d'améliorer la structure interne d'un programme sans en altérer le comportement. On peut comparer cette approche à la modification de la disposition des canalisations et des pompes d'un bâtiment afin d'optimiser la circulation de l'eau et de la rendre plus écologique. Cette refactorisation améliore trois propriétés fondamentales : les performances applicatives (en augmentant la vitesse d'exécution), l'efficacité énergétique (en réduisant la consommation d'énergie) et la facilité de maintenance et de modification du code source.
Les chercheurs, qui ont publié certains de ces travaux dans l'International Journal of Parallel Programming, ont développé et déposé trois produits technologiques susceptibles d'être commercialisés auprès d'une entreprise européenne qui a manifesté son intérêt. « Ces logiciels peuvent faciliter la prestation de services d'ingénierie à des tiers en simplifiant le processus de développement », explique le professeur José Daniel García.
Le projet REPARA (Reengineering and Enabling Performance and Power of Applications), qui s'est déroulé de septembre 2013 à août 2016, a réuni des experts en systèmes de calcul parallèles et hétérogènes issus du monde universitaire et industriel de cinq pays européens. Doté d'un budget de plus de 3,6 millions d'euros, il a bénéficié d'un financement de plus de 2,6 millions d'euros provenant du septième programme-cadre (FP7) pour la recherche et le développement technologique, principal instrument de financement de la recherche de l'Union européenne. Six établissements d'enseignement supérieur y ont participé : la Haute École spécialisée de Rapperswil (Suisse), l'Université Carlos III de Madrid (Espagne), l'Université de Pise (Italie), l'Université de Szeged (Hongrie), l'Université technique de Darmstadt (Allemagne) et l'Université de Turin (Italie). Le projet comptait également deux partenaires industriels : Ixion Industry & Aerospace en Espagne et Evopro Innovation en Hongrie. L'UC3M est l'institution coordinatrice du projet REPARA et y participe par le biais du groupe de recherche ARCOS, qui apporte au projet son expérience en matière de calcul haute performance et de systèmes embarqués.
Site Internet du projet REPARA : http://www.repara-project.eu
Référence bibliographique :
R. Sotomayor, LM Sanchez, JG Blas, J. Fernandez et JD Garcia. Génération automatique de noyaux OpenCL multiversionnés pour applications scientifiques C++ sur CPU/GPU. International Journal of Parallel Programming, 2016.
