Input-output systems in massively parallel architectures
Les entrées-sorties dans les architectures massivement parallèles
Résumé
It is now generally accepted that for a large number of applications a system's global performance is affected if the transfer rate between computing units and storage devices is not fast enough. Throughout this thesis, we develop the idea that it is possible to design a universal and efficient I/O system within a scalable context if some given directives are followed from its conception. Our research integrates all of an I/O system's components. We first choose a hardware architecture which is suitable for the diverse types of I/O requests found in parallel applications. We present an architecture that is both universal and scalable that allows maximising parallelism. Secondly, we use our own micro-kernel, ParX, that offers basic mechanisms for a parallel file system's execution. For this, we first propose some extensions which are indispensable for better adapting ParX to the requirements of parallel I/O's, and later, to exploit file mapping onto address spaces, we develop original mechanisms which are necessary for implementing a common address space in a scalable distributed memory architecture. Finally, we introduce the basic principles that must be observed to reconcile generality and high performances in the design of a parallel and scalable file system. The structure of the file system proposed at the end of this document is the result of the application of these principles.
Il est reconnu aujourd'hui que pour un grand nombre d'applications les performances globales des systèmes sont fortement limitées faute d'un transfert suffisament rapide entre les unités de calcul et les dispositifs de stockage. L'idée développée au long de cette thèse est qu'il est possible de réaliser un système d'E/S universel et performant dans un environnement extensible si l'on respecte quelques principes dans sa conception. Pour ce faire, il est nécessaire d'y faire participer le matériel, le système d'exploitation, le système de fichiers et les utilisateurs, chacun au niveau approprié. Notre travail intègre toutes les composantes d'un sous-système d'E/S. En premier lieu, nous choisissons une architecture matérielle adéquate aux divers types de demandes d'E/S observés dans les applications parallèles. Nous présentons une architecture universelle et extensible qui permet de maximiser l'exploitation du parallélisme. En deuxième lieu, nous utilisons ParX, un micro-noyau parallèle conçu à l'intérieur de notre équipe, pour fournir les mécanismes de base à l'exécution d'un système de fichiers parallèle. Nous concrétisons d'abord certaines extensions indispensables pour mieux adapter ParX aux besoins des E/S parallèles, et ensuite, afin d'exploiter la projection des fichiers dans l'espace d'adressage, nous développons des mécanismes originaux, nécessaires à l'implémentation d'un espace d'adressage commun dans une architecture extensible à mémoire distribuée. En troisième lieu, nous introduisons les principes de base qui doivent être respectés afin de concilier la généralité et les hautes performances dans la conception d'un système de fichiers parallèle extensible. L'architecture du système de fichiers proposée à la fin du rapport est le résultat de l'application de ces principes.