Comparative Characteristics of Containerization Platforms Docker and Singularity
Authors: Бондяков А.С. , Кондратьев А.О. 
Published: July 2024

На сегодняшний день для решения задач различной сложности требуются высокие мощности и применяются повышенные требования к оборудованию. Это задачи инженерного проектирования, большой спектр задач научных вычислений, системы моделирования, анализ данных и т. д. Как правило, любая отрасль имеет задачи, для выполнения которых требуются высокопроизводительные вычисления. Для решения таких задач используются высокопроизводительные вычислительные системы, основу которых составляют технологии параллельных вычислений, технологии виртуализации и контейнеризации. Параллельные вычисления позволяют значительно увеличить производительность вычислительных систем при выполнении одной и той же программы. Технологии виртуализации позволяют создать на одном физическом компьютере несколько виртуальных машин, каждая из которых работает под управлением отдельной операционной системы. Контейнеры — это одно из самых перспективных направлений развития современных информационных технологий. В настоящее время контейнеры используются во многих областях, включая веб-приложения (например, Apache Tomcat), мобильные приложения, системы управления базами данных, а также для развертывания серверных сред. По мнению разработчиков, контейнеры позволят упростить разработку и развернуть высокопроизводительные вычислительные системы, значительно повысить их производительность и надежность. В данной статье представлены сравнительные характеристики платформ контейнеризации Docker и Singularity в аспекте решения таких проблем, как портируемость кода между локальной средой выполнения и промышленной средой приложения. Приведены примеры использования данных платформ для решения задач, которые являются актуальными в настоящее время. Рассмотрены наиболее важные моменты работы данных платформ применительно к высокопроизводительным вычислительным кластерам.

To date, to solve problems of varying complexity, high power and increased requirements for equipment are required. These are engineering design tasks, a wide range of scientific computing tasks, modeling systems, data analysis, etc. As a rule, any industry has tasks that require high-performance computing. To solve such problems, high-performance computing systems are used, which are based on parallel computing technologies, virtualization and containerization technologies. Parallel computing can significantly increase the performance of computing systems when executing the same program. Virtualization technologies allow you to create several virtual machines on one physical computer, each of which runs a separate operating system. Containers are one of the most promising areas for the development of modern information technologies. Containers are currently used in many areas, including: web applications (such as Apache Tomcat), mobile applications, database management systems, and for deploying server environments. According to the developers, containers will simplify the development and deployment of high-performance computing systems, significantly improve their performance and reliability. This article presents the comparative characteristics of the containerization platforms Docker and Singularity, in the aspect of solving such problems as code portability between the local runtime and the production environment of the application. Examples of using these platforms to solve problems that are currently relevant are given. The most important aspects of the work of these platforms in relation to high-performance computing clusters are considered.