Vers un Système d'Exploitation pour Les Plateformes Manycore Poids Léger

par Pedro De Mello Morado Penna

Projet de thèse en Informatique

Sous la direction de Jean-François Méhaut.

Thèses en préparation à Grenoble Alpes en cotutelle avec l'Université Pontificale Catholique du Minas Gerais - Brésil , dans le cadre de École doctorale mathématiques, sciences et technologies de l'information, informatique (Grenoble) , en partenariat avec Laboratoire d'Informatique de Grenoble (laboratoire) depuis le 02-02-2018 .


  • Résumé

    De nombreux processeurs ont émergé au cours de la dernière décennie pour Exigences de performance toujours croissantes d'ingénierie et de science applications. Contrairement aux multicores traditionnels, Plusieurs éléments intègrent sur une seule puce des centaines de noyaux, Disposent d'une configuration de mémoire distribuée et comptent sur Communication de transmission de message sur un NoC. Quelques exemples de cela De tels processeurs sont Tilera Tile GX; la Kalray MPPA 256; Et le Sunway Taihulight. Bien que de nombreux processeurs aient été introduits avec succès par les Communauté d'architecture informatique, support de programmation actuel pour Ils restent pauvres, non standard et hautement dépendant de la plate-forme. Par conséquent, le portage et la conception d'applications à de nombreux résultats se révèlent Être une tâche difficile qui mène à des solutions difficiles à maintenir. Par exemple, lors de la programmation Les plateformes MPPA, les ingénieurs logiciels doivent compter sur API propriétaires pour gérer la communication interprocessus, traiter Opérations de migration et d'E / S; Et ils doivent faire face aux données Carrelage, affinité, mise en cache et cohérence dans les logiciels, pour extraire Performance raisonnable hors processeur. En outre, le système d'exécution ne prend pas en charge les tâches multiples, et La capacité de traitement de la plate-forme est donc intrinsèquement gaspillée Lorsque l'application n'utilise pas tous les noyaux qui sont Disponible sur le processeur. En effet, la raison d'être de ce problème vient de l'absence d'un Support d'exécution / système d'exploitation robuste pour Manycores. De façon pragmatique, Les plates-formes existantes basées sur l'une ou l'autre de deux solutions sont: (A) systèmes d'exécution exclusifs ou (b) ports piratés du grand public Kernels de systèmes d'exploitation pour multicores, tels que Linux et RTEMS. En effet, la première solution permet des performances de pointe Applications, et ce dernier permet aux applications d'être plus faciles Porté. Cependant, en s'appuyant sur les systèmes d'exécution exclusifs Conduit à la non-portabilité; Et inversement le système d'exploitation principal Les noyaux ne sont pas conçus à l'origine pour beaucoup de points, de manière inhérente Cédant aux performances sous-optimales et à la durabilité du noyau dur. Pour surmonter efficacement les défis du développement d'applications sur Les plates-formes existantes existantes, nous soutenons que l'architecture de Les noyaux du système d'exploitation de nombreuses lignes devraient être redessinés Ciblant trois caractéristiques: - Aucun changement ne devrait être introduit dans POSIX introduit Par IEEE, permettant ainsi la portabilité de Applications au niveau de l'utilisateur. - Le noyau du système d'exploitation lui-même devrait être portable Une grande variété de nombreuses architectures, de même Linux est À plusieurs architectures multicœurs. - Caractéristiques intrinsèques de nombreux processeurs, tels que les La configuration de la mémoire distribuée et la présence d'un NoC, Devrait être traité de manière optimale et abstraite. Dans ce contexte, l'objectif principal de la thèse est de proposer un nouveau Système d'exploitation pour émerger de nombreuses plates-formes basées sur le Caractéristiques susmentionnées. Ce système d'exploitation sera POSIX Conforme; Il comportera la portabilité du noyau au moyen d'un matériel Couche d'abstraction; Et il va gérer les complexités de nombreux Architectures en empruntant des concepts de systèmes distribués Et les réseaux informatiques. Pour atteindre cet objectif, nous comptons sur deux pierres angulaires. La première L'un est un noyau de système d'exploitation conçu à l'équipe CArT, notre Équipe de recherche associée au Brésil. Ce système d'exploitation s'appelle Nanvix, Et il comporte une architecture maigre de noyau monolithique avec un POSIX Interface d'appel système. Nanvix nous servira de Base pour la conception du système d'exploitation pour plusieurs Propose par la présente. La deuxième pierre angulaire sur laquelle nous devrions compter Consiste en une collection d'outils open source qui permettent de simuler Et le prototypage de nombreuses plates-formes basées sur des données. Dans ce contexte, nous A l'intention de compter sur Gem5 et OpTiMSoC. Le premier est un système complet Simulateur largement utilisé par l'industrie et le milieu universitaire; et le Ce dernier est un cadre ouvert pour la conception et le prototypage Plusieurs systèmes basés sur les périphériques FPGA. Nous allons jumeler Gem5 et OpTiMSoC pour simuler et prototyper notre système d'exploitation sur un excellent Variable d'architectures multiples. La principale contribution de la thèse est la conception et la mise en œuvre D'un système d'exploitation pour de nombreuses lignes. Par conséquent, cette thèse doit Remplir pleinement l'écart existant sur le soutien au développement d'applications sur le Concernant la branche des processeurs qui émerge. En outre, ceci La thèse doit pousser encore plus loin l'état de la technique dans la conception de systèmes d'exploitation. Les résultats de la thèse doivent être soumis à Véhicules scientifiques à fort impact dans la région, tels que les SIGOPS ACM Symposium des principes des systèmes d'exploitation (SOSP), Conférence USENIX Sur la conception et la mise en œuvre des systèmes d'exploitation (OSDI) et de l'IEEE Symposium international sur le système sur puce (SoC).

  • Titre traduit

    Towards an Operating System for Lightweight Manycore Platforms


  • Résumé

    Manycore processors emerged in the last decade to meet the ever-increasing performance demands of engineering and scientific applications. In contrast to traditional multicores, manycores integrate on a single chip hundreds of cores, feature a distributed memory configuration, and rely on message-passing communication over a NoC. Some examples of this of such processors are the Tilera Tile GX; the Kalray MPPA 256; and the Sunway Taihulight. Although manycore processors were successfully introduced by the Computer Architecture community, current programming support for them remains poor, non-standard and highly platform-dependent. Therefore, porting and designing applications to manycores turns out to be a challenging task that leads to solutions that are hard to maintain. For instance, when programming MPPA-based platforms, software engineers have to rely on proprietary APIs to handle inter-process communication, process migration and I/O operations; and they have to deal with data tiling, affinity, caching and coherency in software, to extract reasonable performance out of the processor. Furthermore, the runtime system does not support multi-tasking, and thus the processing capacity of the platform is inherently wasted when the application is not using all the cores that are available on the processor. Indeed, the rationale behind this problem comes from the lack of a robust runtime/operating system support for manycores. Pragmatically, existing manycore-based platforms rely on either of two solutions: (a) proprietary runtime systems or (b) hacked ports of mainstream operating systems kernels for multicores, such as Linux and RTEMS. Indeed, the former solution enables cutting-edge performance to applications, and the latter allows applications to be easier ported. However, relying on proprietary runtime systems consequently leads to non-portability; and conversely mainstream operating system kernels are not originally designed to manycores, thus inherently yielding to suboptimal performance and hard kernel maintainability. To effectively overcome application development challenges on existing manycore-based platforms, we argue that the architecture of operating system kernels of manycores should be redesigned targeting three characteristics: - No changes should be introduced to the POSIX introduced by IEEE, thereby enabling portability of user-level applications. - The operating system kernel itself should be portable to a great variety of manycore architectures, likewise Linux is to several multicore architectures. - Intricacy features of manycore processors, such as the distributed memory configuration and the presence of a NoC, should be optimally handled and abstracted. In this context, the main goal of the thesis is to propose a new operating system for emerging manycore-based platforms with the aforementioned characteristics. This operating system will be POSIX compliant; it will feature kernel portability by means of a hardware abstraction layer; and it will handle intricacies of manycore architectures by borrowing concepts of distributed systems and computer networks. To achieve this goal, we will rely on two cornerstones. The first one is an operating system kernel designed at the CArT Team, our associated research team in Brazil. This operating system is code-named Nanvix, and it features a lean monolithic kernel architecture with a POSIX system call interface. Nanvix will serve us as the basis for designing the operating system for manycores that we hereby propose. The second cornerstone on which we should rely on consists in a collection of open-source tools that enable simulating and prototyping manycores-based platforms. In this context, we intend to rely on Gem5 and OpTiMSoC. The former is a full-system simulator that is widely used by industry and academia; and the latter is an open-framework for designing and prototyping manycores-based systems on FPGA devices. We will couple Gem5 and OpTiMSoC to simulate and prototype our operating system on a great variable of manycore architectures. The main contribution of the thesis is the design and implementation of an operating system for manycores. Therefore, this thesis shall full fill the existing gap on application development support on the concerning branch of processors that emerges. Furthermore, this thesis shall push even further the state of the art in the design of operating systems. The results of the thesis shall be submitted to high-impact scientific vehicles in the area, such as the ACM SIGOPS Symposium of Operating Systems Principles (SOSP), USENIX Conference on Operating Systems Design and Implementation (OSDI), and IEEE International Symposium on System-on-Chip (SoC).