<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Институт механики сплошных сред УрО РАН1, Пермский национальный исследова- тельский политехнический университет2</article-title>
      </title-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <abstract>
        <p>Одной из проблем, возникающей при разработке распределенного суперкомпьютера является запуск вычислительной задачи в разнородном окружении. Вычислительные узлы суперкомпьютеров, объединяемые в единое вычислительное пространство, могут иметь различные версии операционных систем, компиляторов, системных и прикладных библиотек, в том числе библиотек MPI с различными ABI. Это делает невозможным прямой перенос скомпилированных бинарных файлов расчетных приложений между такими вычислительными узлами. Решением этой проблемы может быть запуск пользовательских задач в виртуальных машинах, запускаемых на вычислительных узлах, однако, технологии полной виртуализации вносят дополнительные накладные расходы, тем самым уменьшая доступную расчетным приложениям производительность. В тоже время, во многих операционных системах, в том числе в операционной системе Linux, есть поддержка виртуализации на уровне операционной системы или контейнерная виртуализация. Контейнерная виртуализация - это такой метод виртуализации, при котором одно ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя, вместо одного, что приводит к снижению накладных расходов по сравнению с полной виртуализацией. Использование контейнерной виртуализации позволяет запускать в дочерних контейнерах только ту же операционную систему, что и базовая, однако, версии дочерних операционных систем могут быть другими и в них может быть установлен другой набор программного обеспечения и библиотек. Таким образом, использование методов контейнерной виртуализации в операционной системе Linux является хорошим методом построения бинарно совместимых окружений для запуска вычислительных задач поверх вычислительных узлов объединяемых суперкомпьютеров. Помимо этого запуск задач внутри контейнеров позволит предоставлять им и дополнительное программное обеспечение и библиотеки, которые невозможно установить непосредственно на узлы суперкомпьютеров. Для установки на вычислительном кластере «Тритон» ИМСС УрО РАН была выбрана система Docker, предоставляющая инструментарий для управления контейнерами поверх стандартного ядра Scientific Linux 6.6 x86_64. В рамках опытной эксплуатации был успешно реализован запуск контейнеров с различными версиями операционных систем CentOS на отдельных узлах вычислительного кластера с использованием очереди задач SLURM. Это позволило автоматизировать использование свободных вычислительных узлов кластера на проведения тестирования программного обеспечения в различных дистрибутивах Linux. На следующих этапах планируется реализовать запуск многоузловых и расчетных задач в изолированных контейнерах, работающих на различных вычислительных узлах кластера. * Работа выполнена при поддержке гранта РФФИ №14-07-96001 «Разработка архитектуры распределенного интерконнекта».</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Применение контейнерной виртуализации для запуска задач
на распределенном суперкомпьютере*
Using of container virtualization to run tasks on a distributed
supercomputer
Vladislav Shchapov and Denis Chugunov
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.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>