Recherche expérimentale avec MPI

  • langage : C++
  • framework : ~5000 lignes


Mon stage de troisième année qui dura 6 mois s'est déroulé au Japon dans la très sympathique ville de Fukuoka, ou je suis retourné pour 4 mois supplémentaires par la suite pour y totaliser 10 mois. J'y étais engagé en tant qu'assistant chercheur (niveau master, les chercheurs devant être en Ph.D). Mon travail était de trouver des solutions (et de les implémenter pour test) pour accélérer MPI. MPI est une bibliothèque portable utilisée pour communiquer entre processus dans un super calculateur. L'architecture parallèle de ces machines demandant parfois que les processus s'échangent des informations, il est préférable que cela se passe le plus vite possible si cela doit être répété au cours de la vie du programme. En collaboration avec l'équipe, j'ai donc entamé le développement d'un framework qui se glisse entre le programme et MPI permettant de brancher les communications collectives sur nos algorithmes, de faire dynamiquement une petite base de données de leur performances et de choisir le meilleur parmi eux pour la suite de l'exécution du programme. Ainsi, s'adaptant facilement à tout type de machine parallèle et programme utilisant MPI. Ce travail s'inscrit dans la suite d'une recherche entamée par le professeur Ahmed Fahraj anciennement à l'université de Floride, travaillant désormais pour IBM. Ce travail m'a valu mon master (II) de recherche à l'Université Bordeaux 1.