Thèse soutenue par Samuel Omlin, le 26 janvier 2017, Institut des sciences de la Terre (ISTE)
Académie et industrie n’ont pas encore été capables d’adapter les logiciels et les algorithmes numériques aux changements rapides et fondamentaux dans l’évolution du hardware depuis le début du 21e siècle. Une grande partie des applications et algorithmes ne sont, par conséquent, pas bien adapté au hardware disponible ; cela implique des performances bien au-dessous du maximum atteignable.
Nous répondons dans cette thèse au besoin actuel de développer des nouveaux algorithmes parallèles et des outils qui simplifient le développement d’applications qui soient adaptées au hardware d’aujourd’hui et de demain. Nous présentons (1) le compilateur HPCm qui simplifie de manière importante la construction des applications parallèles de haute performance et (2) des algorithmes pour la simulation 3D de processus géodynamiques complexes.
L’outil HPCm , développé dans cette thèse, transforme des scripts MATLAB en applications parallèles de haute performance pour des super-ordinateurs, des clusters de calculs et des ordinateurs desktops avec des processeurs standards (CPU) ou des cartes graphiques (GPU) pour le calcul scientifique. ll est conçu pour des applications qui utilisent des algorithmes simples. Le coeur de HPCm est un traducteur code-code.
Dans cette thèse, nous illustrons la grande performance et versatilité de HPCm, en en faisant usage pour la génération de applications de simulation pour une variété de physiques à travers de multiples disciplines dans les sciences de la Terre. Tous les applications de simulation atteignent une performance qui est proche du maximum que le hardware peut fournir et montrent une scalabilité presque idéale sur les 80 GPUs du cluster de calcul Octopus à l’Institut des sciences de la Terre à l’Université de Lausanne. De plus, ils atteignent une amélioration sur le script MATLAB d’entrée d’environ 250x à 500x sur un GPU, 1000x à 2000x sur un ordinateur desktop avec 4 GPUs et 17’000x à 35’000x sur 80 GPUs.
Par ailleurs, nous montrons que notre application de simulation la plus complexe atteigne une scalabilité presque idéale sur 5000 GPUs du super-ordinateur Piz Daint au Centre suisse du calcul scientifique (CSCS, Lugano, Switzerland) et arrive ainsi à une amélioration sur le script MATLAB d’entrée d’environ 500’000x. Nous nous attendons à une scalabilité similaire pour tous les dix applications de simulation. Le traducteur code-code qui est contenu dans HPCm est le premier connu aux auteurs qui peut effectuer tous les tâches nécessaires pour la génération d’une application massivement parallèle de haute performance à partir d’un code développé dans un environnement de prototypage classique tel que MATLAB.