Introduction
L’accroissement de la complexité des problèmes et des données traités et gérés par les systèmes informatiques dans les différents secteurs économiques (biotechnologies, pharmaceutique, aéronautique,...) pousse aujourd’hui les entreprises, à augmenter considérablement leur puissance de calcul. Dans le même temps, les fabricants de processeurs (CPU), sont confrontés à des limites physiques (dissipation thermique, consommation énergétique,...) dans la course à l’augmentation de puissance. Depuis plusieurs années, la puissance de ces processeurs stagne. Pour contourner l’obstacle à la progression des performances d’un processeur, les fabricants s’orientent vers la production de processeurs multi-cœurs et multiprocesseurs. Cependant, parallèlement à cette évolution, les cartes graphiques dotées de processeurs graphiques spécialisés (GPU) ont vu leur puissance augmenter considérablement grâce à la multiplication de processeurs, jusqu’à plusieurs centaines, au sein de ces GPU. Destinées initialement à l’affichage et au rendu d’images, comme pour les jeux vidéos, les capacités de traitement très importantes des cartes graphiques sont désormais utilisables pour d’autres logiciels, pour peu qu’ils soient adaptés à une exécution parallèle sur les processeurs des GPU. Indépendamment de ces deux évolutions, les cartes accélératrices basées sur FPGA sont montées en puissance et en services proposés. Autrefois requérant une expertise dans le développement HDL, des outils d’aide au développement et à l’interfaçage ont fait leur apparition, rendant l’utilisation de ces plateformes plus aisée.
Toutefois la plupart des logiciels ne sont pas initialement conçus pour tirer parti d’une exécution parallèle. Alors que des avancées technologiques significatives ont eu lieu durant les trois dernières années, l’adoption à grande échelle reste encore très timide par manque de standards et de méthodes simples d’utilisation. Quelle approche standardisée suivre pour adapter un logiciel pour qu’il exploite la technologie GPU ? Comment transformer et porter une partie d’un logiciel sur une plateforme FPGA pour bénéficier de tout son potentiel ? Ces problématiques d’évolution technologique sont au cœur de la recherche collective proposée dans le projet PSOPP qui se base sur les évolutions technologiques et scientifiques les plus récentes.
Objectifs du projet
L’objectif du projet est d’élaborer une méthodologie outillée d’adaptation de logiciels pour qu’ils exploitent le potentiel parallèle des CPU multi-cœur et massivement parallèle des GPU et des plateformes FPGA.
Après une étape de spécifications et d’état de l’art, le projet conçoit une méthode de parallélisation d’application adaptée aux besoins des PMEs. Cette méthode est outillée par des logiciels, nouveaux ou complétant des logiciels existants, de manière à faciliter la programmation parallèle sur les CPU multi-cœurs et sur les GPU, et de manière à porter aisément les sections les plus critiques sur une plateforme accélératrice FPGA.
Ce premier résultat du projet est mis en œuvre dans plusieurs cas d’utilisation industriels, y compris sur une application de simulation numérique, de manière à valider et a améliorer les outils et la méthode grâce au retour d’expérience fourni par ces cas d’utilisation. Les cas d’utilisation sont des livrables de PSOPP à disposition des partenaires industriels du projet.
A l’issue de la validation, une étape de valorisation complète la méthode et les outils de parallélisation de manière à les proposer au plus grand nombre possible de PME wallonnes. La préparation des résultats du projet comprend la documentation complémentaire de la méthode et la mise à disposition du code sources des outils logiciels.
Valeur ajoutée du projet pour les entreprises
Pour répondre aux besoins des PMEs, le projet doit tenir compte de l’environnement dans lequel les applications candidates sont utilisées aujourd’hui. Certaines entreprises mettent en œuvre des centres de calcul de taille conséquente. Leurs intérêts iront vers une optimisation globale de leur parc en termes d’efficacité (ratio prix/performances) en préservant leurs investissements passés. Ces entreprises seront également attentives aux problèmes d’encombrement et de consommation électrique. Les PMEs utilisent plus souvent des moyens de calcul beaucoup plus limités, éventuellement un seul serveur. Dans leur cas, elles seront plus spécifiquement intéressées à augmenter à peu de frais leur capacité et de diminuer leur temps de calcul par l’ajout d’une ou plusieurs GPU de type carte graphique grand public, ou par l’ajout d’une carte accélératrice FPGA, plus onéreuse mais fournissant un grand potentiel d’augmentation des performances.
Les PME disposeront donc de ressources de traitement informatiques nouvelles mais seront également plus à même de les exploiter car les outils développés dans le projet en faciliteront la maîtrise et la programmation.
Des entreprises disposant déjà d’un parc de machines équipées de cartes graphiques (travaillant dans le secteur de l’image ou de la vidéo), pourront être intéressées par exploiter cette puissance de calcul à travers un système de distribution flexible sur le réseau tel que BOINC par exemple, qui permettra d’utiliser les postes de travail la nuit pour réaliser des traitements lourds.
Fiche technique
| Budget CETIC | 438 665 € |
| Durée du projet | 2011-2012 |



