Popcorn разработва разпределена система за изпълнение на нишки за ядрото на Linux.

Virginia Tech Той предложи за обсъждане от разработчиците на ядрото на Linux, набор от корекции с внедряване на система за изпълнение на разпределени нишки Пуканки (Разпределено изпълнение на нишки), което ви позволява да организирате изпълнението на приложения на няколко компютъра с разпределение и прозрачна миграция на нишки между хостове. С Popcorn приложенията могат да се стартират на един хост и след това да се преместят на друг хост без прекъсване. В многонишкови програми е позволено мигрирането на отделни нишки към други хостове.

За разлика от проекта CRIUКато позволява запазване на състоянието на процеса и възобновяване на изпълнението на друга система, Popcorn осигурява безпроблемна и динамична миграция между хостове по време на изпълнение на приложението, като не изисква действие от страна на потребителя и осигурява съгласуваност на виртуалната памет във всички хостове, изпълняващи едновременно нишки.

Формуляр за софтуерен стек на Popcorn лепенки към ядрото на Linux и библиотека с тестове, демонстриращи как системните повиквания на Popcorn могат да се използват за мигриране на нишки в разпределени приложения. На ниво ядро ​​бяха предложени разширения на подсистемата на виртуалната памет с внедряването на разпределена споделена памет, която позволява на процеси на различни хостове да имат достъп до общо и последователно виртуално адресно пространство. Кохерентността на страниците с виртуална памет се осигурява от протокол, който репликира страниците с памет към хоста, когато се четат, и обезсилва страниците с памет, когато се записват.

Взаимодействието между хостове се осъществява с помощта на манипулатор на ниво ядро ​​за съобщения, предавани чрез TCP сокет. Отбелязва се, че TCP/IP се използва за опростяване на отстраняването на грешки и тестването по време на процеса на разработка. Разработчиците разбират, че от гледна точка на сигурността и производителността TCP/IP не е най-добрият начин за прехвърляне на съдържанието на структури на ядрото и страници с памет между хостове. Всички хостове, работещи с разпределени приложения, трябва да имат едно и също ниво на доверие. След стабилизиране на основните алгоритми ще се използва по-ефективен вид транспорт.

Popcorn се развива от 2014 г. като изследователски проект за изследване на възможностите за създаване на разпределени приложения, чиито нишки могат да се изпълняват на различни възли в разнородни изчислителни системи, които могат да комбинират ядра на базата на различни архитектури на набори от инструкции (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Наборът от корекции, предложен на разработчиците на ядрото на Linux, поддържа изпълнение само на хостове с x86 CPU, но има и по-функционална версия на Popcorn Linux, която позволява на приложенията да работят на хостове с различни CPU архитектури (x86 и ARM). За да използвате Popcorn в разнородни среди, трябва да използвате специален компилатор базиран на LLVM. Когато се изпълнява разпределено на хостове със същата архитектура, не е необходимо повторно изграждане с отделен компилатор.

Popcorn разработва разпределена система за изпълнение на нишки за ядрото на Linux.

Освен това може да се отбележи обявление донякъде подобен проект Телевилка с внедряване на първоначален прототип API за стартиране на дъщерни процеси на други компютри в клъстера (като fork(), но прехвърля разклонения процес на друг компютър).
Кодът е написан на Rust и засега позволява клониране само на много прости процеси, които не използват системни ресурси като файлове. Когато се направи телефорк повикване, паметта и структурите, свързани с процеса, се клонират към друг хост, изпълняващ манипулатора на сървъра (telepad). Използвайки ptrace, отражението на паметта на процес се сериализира и заедно със състоянието на процеса и регистрите се прехвърля на друг хост. API също ви позволява да запазите състоянието на процеса във файл и да го възстановите чрез него.

Източник: opennet.ru

Добавяне на нов коментар