Inria - LaBRI, équipe RUNTIME (note: stage effectué au centre Inria Bordeaux)
Contexte du stage
Les applications de calcul scientifique s'attaquent perpétuellement à des problèmes de plus en plus conséquents. Ainsi, la quantité de calcul à traiter devient de plus en plus conséquente, ainsi que la quantité de données qu'ils manipulent.
Il est donc courant d'utiliser de multiples machines reliées en réseau, et de répartir à la fois les calculs et les données, à l'aide de la bibliothèque de communication réseau MPI, ainsi que d'implanter sur chaque machine un accélérateur de calcul de type GPGPU. L'intergiciel de calcul haute performance StarPU a déjà un support à la fois pour l'interface de communication MPI et les accélérateurs GPGPU. De précédents travaux ont porté sur l'ordonnancement d'applications de type algèbre linéaire dense, creuse et compressée à l'aide de StarPU. Ils ont montré que StarPU apportait des performances similaires à des codes de calcul taillés sur mesure, et de manière flexible et portable: l'ordonnancement dynamique s'adapte automatiquement au nombres de nœuds, au nombre d'accélérateurs sur les nœuds, et à la quantité de mémoire disponible.
Objectifs du stage
Le stage consiste à étudier l'ordonnancement d'applications de type stencil (simulation de gaz, de propagation de chaleur, ...), dont le schéma de communication est très différent de celui des applications d'algèbre linéaire, et d'étudier les optimisations possibles selon les algorithmes applicatifs utilisés. Il sera par exemple probablement utile, pour les algorithmes qui le permettent, d'ordonnancer finement les tâches sur les accélérateurs graphiques pour favoriser la réutilisation des données, évitant ainsi des transferts mémoire pour économiser la bande passante entre les CPUs et les GPUs. Pour d'autres algorithmes, les tâches à ordonnancer seront de taille adaptative, nécessitant donc un ordonnancement dynamique. Les applications étudiées pourront être un prototype jouet interne à StarPU, des applications de simulation nucléaire générées par l'intergiciel Qiral, des applications de simulation implémentées à l'aide de XcalableMP en partenariat avec l'Université de Tsukuba, ou encore l'application Koppa qui utilise l'intergiciel PabLO.
Le sujet comporte une part de programmation significative.
Références bibliographiques sur le logiciel StarPU, voir notamment « On MPI support » Qiral