=Paper= {{Paper |id=Vol-1482/601 |storemode=property |title=Применение контейнерной виртуализации для запуска задач на распределенном суперкомпьютере (Using of container virtualization to run tasks on a distributed supercomputer) |pdfUrl=https://ceur-ws.org/Vol-1482/601.pdf |volume=Vol-1482 }} ==Применение контейнерной виртуализации для запуска задач на распределенном суперкомпьютере (Using of container virtualization to run tasks on a distributed supercomputer)== https://ceur-ws.org/Vol-1482/601.pdf
     Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org



    Применение контейнерной виртуализации для запуска задач
             на распределенном суперкомпьютере*
                                  В.А. Щапов1,2, Д.П. Чугунов1
    Институт механики сплошных сред УрО РАН1, Пермский национальный исследова-
                        тельский политехнический университет2

    Одной из проблем, возникающей при разработке распределенного суперкомпьютера явля-
ется запуск вычислительной задачи в разнородном окружении. Вычислительные узлы супер-
компьютеров, объединяемые в единое вычислительное пространство, могут иметь различные
версии операционных систем, компиляторов, системных и прикладных библиотек, в том числе
библиотек MPI с различными ABI. Это делает невозможным прямой перенос скомпилирован-
ных бинарных файлов расчетных приложений между такими вычислительными узлами.
    Решением этой проблемы может быть запуск пользовательских задач в виртуальных ма-
шинах, запускаемых на вычислительных узлах, однако, технологии полной виртуализации вно-
сят дополнительные накладные расходы, тем самым уменьшая доступную расчетным приложе-
ниям производительность. В тоже время, во многих операционных системах, в том числе в опе-
рационной системе Linux, есть поддержка виртуализации на уровне операционной системы или
контейнерная виртуализация. Контейнерная виртуализация – это такой метод виртуализации,
при котором одно ядро операционной системы поддерживает несколько изолированных экзем-
пляров пространства пользователя, вместо одного, что приводит к снижению накладных расхо-
дов по сравнению с полной виртуализацией. Использование контейнерной виртуализации по-
зволяет запускать в дочерних контейнерах только ту же операционную систему, что и базовая,
однако, версии дочерних операционных систем могут быть другими и в них может быть уста-
новлен другой набор программного обеспечения и библиотек.
    Таким образом, использование методов контейнерной виртуализации в операционной сис-
теме Linux является хорошим методом построения бинарно совместимых окружений для за-
пуска вычислительных задач поверх вычислительных узлов объединяемых суперкомпьютеров.
Помимо этого запуск задач внутри контейнеров позволит предоставлять им и дополнительное
программное обеспечение и библиотеки, которые невозможно установить непосредственно на
узлы суперкомпьютеров.
    Для установки на вычислительном кластере «Тритон» ИМСС УрО РАН была выбрана сис-
тема Docker, предоставляющая инструментарий для управления контейнерами поверх стан-
дартного ядра Scientific Linux 6.6 x86_64. В рамках опытной эксплуатации был успешно реали-
зован запуск контейнеров с различными версиями операционных систем CentOS на отдельных
узлах вычислительного кластера с использованием очереди задач SLURM. Это позволило ав-
томатизировать использование свободных вычислительных узлов кластера на проведения тес-
тирования программного обеспечения в различных дистрибутивах Linux.
    На следующих этапах планируется реализовать запуск многоузловых и расчетных задач в
изолированных контейнерах, работающих на различных вычислительных узлах кластера.




*
 Работа выполнена при поддержке гранта РФФИ №14-07-96001 «Разработка архитектуры распределен-
ного интерконнекта».


                                                 601
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org



Using of container virtualization to run tasks on a distributed
supercomputer
Vladislav Shchapov and Denis Chugunov
Keywords: Distributed supercomputer, Container virtualization, Docker
This paper talks the launch of tasks on the compute nodes of the distributed supercomputer in
isolated environments with the use of container virtualization technology. Using specially
prepared containers will create virtual compute nodes over nodes of the distributed
supercomputer that can have different pre-installed software and libraries. Virtual nodes have
a single set of software and settings that allow you to run computational tasks without the
need for adaptation to the different versions of the system libraries, MPI and other settings.