JTE Cluster Computing

Exploitation efficace des grappes de PC,
ou l'importance d'une bonne intégration des communications et du multithreading

Raymond Namyst, LIP

Résumé : Les grappes de PC occupent une place de plus en plus grande sur le terrain des machines parallèles à mémoire distribuée grâce à leur rapport performance/prix très compétitif. Cet exposé présentera quelques travaux récents effectués au sein du projet ReMaP visant à fournir un environnement de communication à la fois performant et portable sur ce type d'architecture.

L'exposé commencera par introduire les différents problèmes posés par des schémas de communication s'écartant de l'envoi de message synchrone point-à-point traditionnel (messages construits dynamiquement, RPC, envois asynchrones). Nous verrons qu'une interface telle que MPI, par exemple, ne permet pas toujours d'obtenir un code efficace dans ces conditions.

La seconde partie de l'exposé présentera l'interface de communication Madeleine conçue pour répondre aux problèmes précédents. Madeleine est une bibliothèque multi-protocoles capable d'exploiter simultanément plusieurs réseaux physiques au sein de la même application. Elle fournit une interface orientée "envoi de messages" permettant la construction incrémentale des messages et l'expression de contraintes de transmission pour chacun des segments d'un message. Ce "contrat" passé entre l'application et Madeleine permet à cette dernière d'optimiser les transferts réseaux tout en respectant la sémantique du programme. Les résultats obtenus sur des réseaux tels que Myrinet et SCI seront présentés.

La troisième partie de l'exposé présentera un aspect des performances un peu plus méconnu : le problème de la réactivité aux évènements du réseau. Bien sûr, il sera question de multithreading, mais nous évoquerons aussi et surtout les problèmes liés à la scrutation du réseau ainsi qu'à la prise en compte des interruptions. En particulier, nous présenterons une extension du noyau Linux permettant une gestion très fine des appels systèmes bloquants au sein d'une bibliothèque de threads de niveau utilisateur.

L'exposé se terminera par une ouverture sur les architectures hétérogènes de type "grappes de grappes" pour lesquelles une extension de Madeleine est en cours de réalisation.

Version à imprimerDernière mise à jour : April 17, 2005, at 08:08 PM