Для ядра Linux развивается система распределённого выполнения потоков Popcorn
4 мая 2020 года
Политехнический университет Виргинии предложил для обсуждения разработчиками ядра Linux набор патчей с реализацией системы распределённого выполнения потоков Popcorn (Distributed Thread Execution), позволяющей организовать выполнение приложений на нескольких компьютерах с распределением и прозрачной миграцией потоков между хостами. При помощи Popcorn приложения могут быть запущены на одном хосте, после чего без остановки работы перемещены на другой хост. В многопоточных программах допускается миграция на другие хосты отдельных потоков.
В отличие от проекта CRIU, позволяющего сохранять состояние процесса и возобновлять выполнение на другой системе, Popcorn предоставляет бесшовную и динамическую миграцию между хостами в процессе выполнения приложения, не требуя действий от пользователя и обеспечивая согласованность виртуальной памяти на всех хостах, на которых одновременного выполняются потоки.
Программный стек Popcorn образуют патчи к ядру Linux и библиотека с тестами, демонстрирующими как можно использовать системные вызовы Popcorn для миграции потоков в распределённо исполняемых приложениях. На уровне ядра предложены расширения к подсистеме виртуальной памяти с реализацией разделяемой распределённой памяти (distributed shared memory), позволяющей процессам на разных хостах обращаться к общему и согласованному виртуальному адресному пространству. Согласованность страниц виртуальной памяти обеспечивается при помощи протокола, который реплицирует на хост страницы памяти при обращении к ним на чтение и аннулирует страницы памяти при выполнении записи.
Взаимодействие между хостами осуществляется при помощи работающего на уровне ядра обработчика сообщений, передаваемых через TCP-сокет. Отмечается, что TCP/IP используется для упрощения отладки и тестирования в процессе разработки. Разработчики понимают, что с точки зрения безопасности и производительности TCP/IP не лучший способ передачи содержимого структур ядра и страниц памяти между хостами. Все хосты, на которых выполняются распределённые приложения, должны иметь идентичный уровень доверия. После стабилизации основных алгоритмов будет применён более эффективный вид транспорта.
Popcorn развивается с 2014 года как исследовательский проект по изучению возможностей создания распределённых приложений, потоки которых могут выполняться на разных узлах в гетерогенных вычислительных системах, в которых могут комбинироваться ядра на базе различных архитектур набора команд (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Предложенный разработчикам ядра Linux набор патчей поддерживает только выполнение на хостах с CPU x86, но имеется и более функциональный вариант Popcorn Linux, который позволяет выполнять приложения на хостах с разными архитектурами CPU (x86 и ARM). Для использования Popcorn в гетерогенных окружениях необходимо использовать специальный компилятор на основе LLVM. При распределённом выполнении на хостах с одной архитектурой пересборка отдельным компилятором не требуется.
Кроме того, можно отметить анонс чем-то похожего проекта
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.