Для ядра 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. При распределённом выполнении на хостах с одной архитектурой пересборка отдельным компилятором не требуется.

Кроме того, можно отметить анонс чем-то похожего проекта

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Для ядра Linux развивается система распределённого выполнения потоков Popcorn», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.