Un système d'exécution distribuée des flux Popcorn est en développement pour le noyau Linux

Université polytechnique de Virginie a proposé pour discuter avec les développeurs du noyau Linux d'un ensemble de correctifs mettant en œuvre un système d'exécution distribuée de threads Popcorn (Exécution de Threads Distribués), permettant d'organiser l'exécution d'applications sur plusieurs ordinateurs avec distribution et migration transparente des threads entre les hôtes. Grâce à Popcorn, les applications peuvent être lancées sur un hôte, puis, sans interruption, déplacées vers un autre hôte. Dans les programmes multithread, la migration de threads individuels vers d'autres hôtes est autorisée.

Contrairement au projet CRIU, qui permet de sauvegarder l'état d'un processus et de reprendre son exécution sur un autre système, Popcorn offre une migration transparente et dynamique entre les hôtes pendant l'exécution de l'application, sans nécessiter d'intervention de l'utilisateur et assurant la cohérence de la mémoire virtuelle sur tous les hôtes où les threads s'exécutent simultanément.

La pile logicielle de Popcorn est constituée patchs d'un noyau Linux et d'une bibliothèque avec des tests montrant comment utiliser les appels système de Popcorn pour migrer des threads dans des applications exécutées de manière distribuée. Au niveau du noyau, des extensions au sous-système de la mémoire virtuelle ont été proposées, mettant en œuvre une mémoire partagée distribuée (distributed shared memory), permettant aux processus sur différents hôtes d'accéder à un espace d'adresses virtuel commun et cohérent. La cohérence des pages de mémoire virtuelle est assurée grâce à un protocole qui réplique sur l'hôte les pages de mémoire lors de l'accès en lecture et annule les pages de mémoire lors de l'écriture.

L'interaction entre les hôtes se fait grâce à un gestionnaire de messages fonctionnant au niveau du noyau, échangé par un socket TCP. Il est à noter que TCP/IP est utilisé pour simplifier le débogage et les tests durant le développement. Les développeurs comprennent que du point de vue de la sécurité et de la performance, TCP/IP n'est pas le meilleur moyen de transmettre le contenu des structures du noyau et des pages de mémoire entre les hôtes. Tous les hôtes où les applications distribuées s'exécutent doivent avoir un niveau de confiance identique. Une fois les algorithmes principaux stabilisés, un moyen de transport plus efficace sera appliqué.

Popcorn évolue depuis 2014 en tant que projet de recherche sur les possibilités de création d'applications distribuées, dont les flux peuvent s'exécuter sur différents nœuds dans des systèmes de calcul hétérogènes où les cœurs basés sur différentes architectures d'ensemble d'instructions (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA) peuvent être combinés. Le jeu de patches proposé aux développeurs du noyau Linux ne prend en charge que l'exécution sur des hôtes avec des CPU x86, mais il existe également une version plus fonctionnelle, Popcorn Linux, qui permet d'exécuter des applications sur des hôtes avec différentes architectures de CPU (x86 et ARM). Pour utiliser Popcorn dans des environnements hétérogènes, il est nécessaire d'utiliser un compilateur basé sur LLVM. Lors de l'exécution distribuée sur des hôtes avec une seule architecture, la reconstruction par un compilateur séparé n'est pas requise.

Un système d'exécution distribuée des flux Popcorn est en développement pour le noyau Linux

De plus, on peut noter une annonce semblable à ce projet Telefork avec la mise en œuvre d'un prototype initial d'API pour lancer des processus fils sur d'autres ordinateurs dans le cluster (comme fork(), mais déplace le processus partagé sur un autre ordinateur).
Le code est écrit en Rust et permet pour l’instant de cloner uniquement les processus les plus simples, qui n'utilisent pas de ressources système, comme des fichiers. Lors de l'appel de telefork, la mémoire et les structures associées au processus sont clonées sur un autre hôte sur lequel le gestionnaire de serveur (telepad) est en cours d'exécution. À l'aide de ptrace, la mémoire du processus est sérialisée et, avec l'état du processus et des registres, transférée sur un autre hôte. L'API permet également de sauvegarder l'état du processus dans un fichier et de le restaurer par son intermédiaire.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster