• Aucun résultat trouvé

Среда управления задачами KIAM_JOB_CONTROL и ее применение в облачных и GRID вычислениях(KIAM_JOB_CONTROL task management environment and its application to cloud and GRID computing)

N/A
N/A
Protected

Academic year: 2022

Partager "Среда управления задачами KIAM_JOB_CONTROL и ее применение в облачных и GRID вычислениях(KIAM_JOB_CONTROL task management environment and its application to cloud and GRID computing)"

Copied!
7
0
0

Texte intégral

(1)

С

С Ср р рееед д да аа у у уп п пр р ра аав ввл л лееен н ни и ия я я ззза аад д да аач ч ча аам м ми и и K K KIIIA A AM M M_ _ _J JJO O OB B B_ _ _C C CO O ON N NT T TR R RO O OL L L и и и ееееее п

п пр р ри и им м мееен н нееен н ни и иеее в вв о ооб ббл л ла аач ч чн н ны ы ых х х и и и G G GR R RIIID D D в ввы ы ыч ч чи и исссл л лееен н ни и ия я ях х х

Д

Д Д... В В В... П П Пу у уз з зы ы ыр р рь ь ьк к ко о ов в в

111,,,aaa

,,, В В В... О О О... П П По о од д др р ры ы ыг г га а а

111,,,bbb

,,, С С С... В В В... П П По о ол л ля я як к ко о ов в в

111,,,ccc

,,, М

М М... В В В... Я Я Як к ко о об б бо о ов в вс с ск к ки и ий й й

111,,,ddd

1Институт прикладной математики им. М.В. Келдыша Российской академии наук, Россия, 125047, г. Москва, Миусская пл., д. 4

E-mail:adpuzyrkov@gmail.com,bpvictoria@list.ru,cpolyakov@imamod.ru, dlira@imamod.ru

В настоящее время большой интерес представляют научные задачи, связанные с исследованием сложных технологических процессов в реальных условиях. Решение таких задач производится методами математического моделирования и требует использования высокопроизводительных вычислительных систем различного вида, например, GRID- систем и HPC-кластеров. Внешний удаленный доступ пользователей к подобным вычислительным ресурсам обычно существенно ограничен. Это ограничение ставит перед пользователями задачу получения расчетных данных в процессе вычислений, а также перераспределения расчетов между различными доступными вычислительными системами. В данной работе представляется прототип облачной среды KIAM Job_Control, ориентированный на проведение массовых вычислительных экспериментов с помощью высокопроизводительных компьютерных систем. Среда KIAM Job_Control представляет собой многопользовательский облачный сервис, который состоит из серверной части, веб-интерфейса и клиентского приложения. Среда позволяет выполнять длительные расчеты на множестве суперкомпьюте-ров путем автоматической пересылки приложений и расчетных данных. Основными функциями среды являются регистрация вычислительных ресурсов, доступ к этим ресурсам, запуск приложений, их мониторинг и управление, сохранение контрольных точек, сборка рассчитанных данных, перемещение контрольной точки на другой супервычислитель, перезапуск, интерактив- ное взаимодействие с приложением во время вычислений. Среда KIAM Job_Control написана на языке Python с использованием специальных скриптов для организации внутриресурсных операций. Благодаря модульной архитектуре среда KIAM Job_Control может использоваться на широком классе расчетных задач с множеством различных протоколов доступа к вычислительным ресурсам, таким как SSH и HTTP. Тестирование среды проводилось на примере решения актуальных задач нанотехнологии методами молекулярной динамики. В подобных расчетах появление сверхбольших массивов данных является обычным явлением. Эффективное управление данными в этом случае становится одной из важных частей общего алгоритма. Использование среды KIAM Job_Control подтвердило этот факт и позволило существенно ускорить процесс вычислений, проводив- шихся на нескольких вычислительных кластерах.

Ключевые слова: Облачные технологии, Управление задачами, Управление ресурсами, Планирование параллельных задач

Работа выполнена при поддержке Российского фонда фундаментальных исследований (проекты 15-07- 06082-а, 15-29-07090-офи_м).

c

2016 Дмитрий Валерьевич Пузырьков, Виктория Олеговна Подрыга, Сергей Владимирович Поляков, Михаил

(2)

В

В Вв ввееед д дееен н ни и иеее

В настоящее время основным способом исследования математических моделей и про- верки их качественных и количественных показателей служит вычислительный экспери- мент. Используемые в его рамках математические модели и их компьютерные реализации могут оперировать огромным числом параметров и входных данных. Необходимость под- держки решения подобных задач привела к массовому использованию различного рода суперкомпьютеров (HPC-кластеры, GRID-системы и др.).

Очевидно, что способы и полнота доступа к различным суперкомпьютерным систе- мам могут существенно различаться. В локальных сетях небольших организаций реали- зуется полномасштабный прямой и/или удаленный доступ ко всем вычислителям. В слу- чае же использования больших вычислительных систем коллективного доступа возможно- сти рядового пользователя, наоборот, сильно ограничены. В таких системах пользователям предоставляются учетные данные и квота на дисковое пространство и процессорное вре- мя. В результате, пользователю, выполняющему масштабный расчет, не умещающийся на ресурсе по какой-либо квоте, приходится самостоятельно следить за использованием квот и в ручном режиме перезапускать задачи и сохранять рассчитанные данные по сети на собственный компьютер. При наличии у пользователя доступа к нескольким удаленным вычислительным системам ему приходится перемещать расчетные данные с одного ресур- са на другой и перезапускать расчеты также в ручном режиме.

Данная проблема побудила авторов к созданию среды, позволяющей объединить все доступные пользователю вычислительные ресурсы в одной управляющей платформе. Такая организация доступа похожа на классический GRID, однако вместо распараллеливания решения одной задачи, она призвана поддерживать параллельное выполнение множества задач с учетом необходимых для них ресурсов, а так же следить за состоянием задач и обеспечивать их миграцию с ресурсов, исчерпавших квоту, на ресурсы, имеющие свободные мощности.

В данной работе представлен прототип облачной среды KIAM Job_Control, позво- ляющей проводить масштабные суперкомпьютерные расчеты с учетом указанной выше функциональной схемы. Среда является многопользовательским облачным сервисом, состо- ящим из серверной части, веб-интерфейса и клиентского приложения. KIAM Job_Control дает возможность выполнять пользовательские задачи на множестве суперкомпьютеров пу- тем автоматической пересылки задач и их расчетных данных с одного ресурса на другой.

Представленная среда является частью программного комплекса KIAM Multilogin [2], наце- ленного на решение многомасштабных задач нанотехнологии на высокопроизводительных вычислительных системах.

П

П По ооссст тта аан н но оов ввк к ка аа ззза аад д да аач ч чи и и

В результате исследования потребностей, возникающих у пользователей суперком- пьютерных ресурсов, были сформированы следующие особенности, которыми должна об- ладать среда, описанная выше.

Во-первых, среда должна предоставлять функционал управления вычислительными ресурсами, доступными пользователю:

• позволять пользователю вести базу данных всех доступных ему вычислительных ре- сурсов, их учетных данных и возможностей;

(3)

• автоматически определять тип ресурса, доступную квоту по дисковому пространству и по процессорному времени, а так же позволять самостоятельно задавать необходи- мые данные и время доступности системы, используя календарь;

• предоставлять единую точку доступа ко всем зарегистрированным в ней ресурсам.

Во-вторых, в среде должен быть реализован функционал управления пользователь- скими задачами:

• регистрация задач пользовательского типа;

• указание вычислительных ресурсов, доступных для выполнения каждой конкретной задачи;

• развертка пользовательских задач на указанных ресурсах, компиляция из исходных кодов при необходимости, или использование предоставленных пользователем бинар- ных файлов или скриптов;

• запуск и остановка пользовательских задач.

В-третьих, необходим функционал мониторинга:

• отслеживание статуса выполняющихся задач;

• отслеживание оставшихся квот и общей доступности ресурсов;

• получение стандартного вывода задачи и взаимодействие с ее стандартным вводом.

В-четвертых, требуется механизм миграции выполняющихся задач с ресурсов, исчер- павших квоту, на другие доступные ресурсы:

• подготовка задачи на свободном ресурсе по истечению квоты на активном ресурсе;

• учет времени, необходимого на переброску расчетных данных задачи, для минимизи- рования времени простоя;

• функционал для сокращения времени пересылки задач, позволяющий по возможности обходиться без управляющего сервера при миграции исходных данных.

Также от среды требуется отсутствие необходимости установки управляющей части на используемые вычислители, так как у пользователя может не оказаться прав соответ- ствующего уровня доступа.

О

О Об ббзззо оор р р сссу у ущ щ щееессст ттв вву у ую ю ющ щ щи и их х х р р реееш ш шееен н ни и ий й й

В результате поиска подходящих под описанные требования систем были найдены следующие программные комплексы.

Metacluster [5] — мощная система управления множеством вычислительных кластеров, предоставляющая единую точку доступа к ним. Система имеет планировщик задач, позволяющий в автоматическом режиме определять наиболее эффективный ресурс для пользовательского задания. Однако при этом требуется установка управляющей части на используемые вычислители, что не позволяет с его помощью связать произвольные супер- компьютеры в одной системе.

(4)

FlyElephant [4] — платформа, которая предоставляет ученым и инженерам готовую инфраструктуру для проведения высокопроизводительных вычислений. Платформа поз- воляет объединять множество вычислительных ресурсов, однако является коммерческой разработкой и имеет закрытый исходный код.

В итоге, ни одна из указанных, а также других ранее использовавшихся платформ не проектировалась с целью поддержания широкомасштабных вычислений с использованием гетерогенного множества вычислительных систем и перераспределения вычислительных задач между ними в процессе длительных вычислений. Поэтому в данной работе была предпринята попытка спроектировать и реализовать среду, полностью учитывающую вы- шеуказанные требования.

А

А Ар р рх х хи и ит ттееек к кт тту у ур р ра аа K K KIIIA A AM M M J J Jo oob b b_ _ _ccco oon n ntttrrro oolll

Предлагаемая среда KIAM Job_control построена на клиент-серверной архитектуре.

В состав среды KIAM Job_Control входят:

1. серверное приложение kiamjobtld, которое предоставляет доступ к различным вычис- лительным ресурсам, осуществляет запуск задач и мониторинга их выполнения;

2. CLI интерфейс kiamjobctlm — основной способ взаимодействия со средой, который предоставляет командный интерфейс для настройки среды, регистрации задач и управления ресурсами;

3. веб-интерфейс, предоставляемый приложением kiamjobtlweb, который позволяет пользователям работать со средой в браузере, удобно отображать статистику и управ- ление задачами.

Заметим, что серверное приложение kiamjobtld можно установить как на общий сер- вер в режиме многопользовательского доступа, так и на локальную рабочую станцию в однопользовательском режиме. Все управление, настройки и пользовательские действия выполняются через HTTP REST API. Такая схема позволяет легко использовать в качестве клиента к этой системе как веб-интерфейс, так и CLI (Command Line Interface — интерфейс командной строки), установленный локально.

Схема взаимосвязей и взаимодействия компонент показана на рис. 1.

Рис. 1. Компоненты среды KIAM Job_Control и их связи.

(5)

Д

Д До ооссст тту у уп п п и и и у у уп п пр р ра аав ввл л лееен н ни и иеее р р рееесссу у ур р рссса аам м ми и и,,, о ооп п пи и иссса аан н ни и иеее п п по оол л ль ььзззо оов вва аат ттееел л ль ььссск к ки и их х х ззза аад д да аач ч ч

Доступ к ресурсам. На низком уровне доступ к вычислительным ресурсам происхо- дит посредством модулей, написанных на языке Python и поддерживающих необходимый API, состоящий из необходимых методов, таких как разворачивание задачи, сборка, за- пуск, мониторинг и другие. В случае с Linux-ресурсами, доступными по SSH, это модуль, использующий библиотеку Paramiko и разворачивающий на целевой системе специальные bash-скрипты, которые выполняют компиляцию, запуск и автономный мониторинг. Через эти же API среда KIAM Job_control получает информацию о возможностях конкретного вычислителя. На данный момент KIAM Job_control поддерживает только вычислительные ресурсы с доступом по SSH.

Описание пользовательских задач. Для того чтобы пользователь мог запускать какие-либо вычисления на доступных ресурсах, он должен описать задачу и ее особенности.

Структура описания пользовательской задачи представляет собой директорию, в которой находятся исходные коды приложения или бинарный файл, все необходимые для задачи исходные данные, а также текстовый файл с описанием задачи на языке YAML. В таком файле пользователю нужно переопределить установленные по умолчанию параметры зада- чи, а также указать систему сборки (на данный момент это GNU Make и пользовательский build-скрипт). После того, как это описание будет готово, пользователю нужно отправить архив этой директории на сервер, где его проверят на правильность заданных значений и внесут в базу задач. После этого пользователь может запускать развертывание задачи на конкретном вычислительном ресурсе или указать ресурсы, на которых нужно постоянно выполнять данную задачу, мигрируя ее по истечению заданной квоты.

Управление задачами на ресурсе. На данный момент поддерживается только один способ управления работающей задачей — использование системы управления кластером SLURM или стандартной системы управления процессами Linux. В будущем планируется дополнить среду управления специальной библиотекой, которая позволит давать команды на останов, сохранение данных и другие через файловый интерфейс приложения. Прило- жение kiamjobtld по истечению таймаута проверяет квоты и возможности узла, делая на их основе вывод, стоит ли останавливать задачу. По истечению заданной (или определенной автоматически) квоты среда инициирует останов задачи, и при необходимости мигрирует задачу на другой вычислительный ресурс. Таким же образом реализован механизм обрат- ных вызовов: если развернутые скрипты имеют http доступ к управляющему серверу, они до истечения таймаута могут инициировать какое-либо действие, например, перекачку рас- считанных данных в удаленное хранилище.

П

П Пр р ра аак к кт тти и ич ч чееессск к ко ооеее п п пр р ри и им м мееен н нееен н ни и иеее

Тестирование прототипа среды KIAM Job_Conrtol было проведено на реальной программе из комплекса GIMM_NANO [1]. Целями вычислений являлись масштабное молекулярно-динамическое моделирование, а так же анализ его результатов и их визуа- лизация [3]. Задача представляла собой моделирование установления термодинамического равновесия в микросистеме азот-никель при различных температурах газа. В качестве вы- числительных ресурсов использовались доступные на тот момент кластеры МВС-10П (МСЦ РАН), "Ангара-K1"(АО "НИЦЭВТ") и IMM6 (ИПМ им. М.В. Келдыша РАН). Для визуа- лизации и анализа расчета требовалось рассчитать и хранить около 3 ТБ данных на один расчетный вариант. При этом имелись довольно жесткие квоты по процессорному времени и дисковому пространству: МВС-10П была доступна 24 часа в неделю с 0.5 ТБ дисковой квоты; "Ангара-K1"был доступен 94 часа в неделю с 10 ТБ дисковой квоты; IMM6 был

(6)

доступен 168 часов в неделю с дисковой квотой в 60 ТБ. При этом визуализировать данные можно было только на IMM6, потому что только на данном кластере находится специаль- ное программное обеспечение для визуализации. Использование среды KIAM Job_Control позволило выполнить эту задачу с минимальным вмешательством пользователя для мигра- ции данных с вычислителя на вычислитель, в автоматическом режиме перезапуская задачу на доступном вычислителе и сохраняя данные в хранилище IMM6.

З

З За аак к кл л лю ю юч ч чееен н ни и иеее

В работе представлен прототип облачной среды KIAM Job_control, целью которого является проведение масштабных вычислительных экспериментов с использованием вы- сокопроизводительных систем. Прототип позволяет объединить доступные пользователю вычислители различного типа и автоматически перераспределять приложения и данные между ними. Благодаря модульной архитектуре среда KIAM Job_Control поддерживает узлы любой внутренней организации и со множеством различных протоколов доступа к вы- числительным ресурсам. Тестирование текущей реализации среды KIAM Job_Control про- водилось на примере решения актуальных задач нанотехнологии методами молекулярной динамики, для которых характерны сверхбольшие объемы расчетных данных. Использова- ние среды KIAM Job_Control подтвердило важность эффективного управления данными в подобных задачах и позволило существенно ускорить процесс вычислений, проводившихся на нескольких вычислительных системах. В будущем планируется доработка планировщика задач, которая позволит учитывать время перекачки данных с упреждением для сокраще- ния времени простоя ресурсов.

С

С Сп п пи и исссо оок к к л л ли и ит ттееер р ра аат тту у ур р ры ы ы

Bondarenko A, A., Kononov E. M., Kosolapov O. A., Polyakov S. V., Yakobovskiy M. V.

Programmnyi kompleks GIMM_NANO [The GIMM_NANO software suite].

International Supercomputer Conference “Scienti c service in Internet network: all sides of parallelism”(September 23-28, 2013, Novorossiysk). - Moscow: Press MSU, 2013. - P. 333 - 337 (in Russian)

Polyakov S. V., Vyrodov A. V., Puzyrkov D. V., Yakobovskiy M. V. Oblachniy servis dlya resheniya mnogomoshtabnish zadach nanotechnologii na superkompiuternih sistemah [Cloud service for multiscale nanotechnology computations on supercomputers ] // Proceedings of ISP RAS. - 2015. - Vol. 27, No. 6. - P. 409 - 420. (in Russian)

Puzyrkov D. V., Podryga V. O., Polyakov S. V. Raspredelennaya vizualizacia v zadachah modelirovania termodinamicheskogo ravnovesiya v microsistemah gaz-metall metodami molekulyarnoy dinamiki [Parallel visualization of the Molecular Dinamic simulation in the gas-metal microsystem] // Parallel Computing Technologies (P T’2016): Proceedings of the International Scienti c Conference (28 March - 1 April 2016, Arkhangelsk). - Chelyabinsk: South Ural State University Publishing Center. - P. 284 - 297. (in Russian)

FlyElephant [Electronic resource]: https:// yelephant.net/

Metacluster [Electronic resource]: http://cluster.software.unn.ru/MC/Management.aspx

(7)

K

K KIIIA A AM M M_ _ _J JJO O OB B B_ _ _C C CO O ON N NT T TR R RO O OL L L ttta aasssk k k m m ma aan n na aag ggeeem m meeen n nttt eeen n nv v viiirrro oon n nm m meeen n nttt a aan n nd d d iiitttsss a aap p pp p pllliiiccca aatttiiio oon n n ttto oo ccclllo oou u ud d d a aan n nd d d G G GR R RIIID D D ccco oom m mp p pu u utttiiin n ng gg

D

D D... V V V... P P Pu u uzzzy y yrrrk k ko oov v v

111,,,aaa

,,, V V V... O O O... P P Po ood d drrry y yg gga aa

111,,,bbb

,,, S S S... V V V... P P Po oollly y ya aak k ko oov v v

111,,,ccc

,,, M M M... V V V... IIIa aak k ko oob b bo oov v vsssk k kiiiiii

111,,,ddd

1Keldysh Institute of Applied Mathematics, 4 Miusskaya sq., Moscow, 125047, Russia

E-mail:adpuzyrkov@gmail.com,bpvictoria@list.ru,cpolyakov@imamod.ru, dlira@imamod.ru

Now the scientific tasks related to a research of complex technological processes in actual practice are of great interest. The solution of such tasks is made by methods of mathematical modeling and requires use of high-performance computing systems of different type, for example, GRID systems and HPC clusters. Remote user access to such computing resources is usually quite limited. This limitation poses the problem of data acquisition during the process of calculation, as well as the redistribution of tasks between different available computer systems.

This paper presents a prototype of a cloud service KIAM Job_Control, focused on holding the mass computational experiments on the different high-performance computer systems. The KIAM Job_Control is a multiuser cloud environment, which consists of the server side, the web interface and client application. This environment allows to perform long calculations on a set of supercomputers by automatically forwarding the applications and computational data. Main tasks of this service are computational resource registration and access, application deploying and starting, management and monitoring of resources, gathering computational data, relocation of data-save-point to another resource and interactive communication with the application.

KIAM Job_Control service is written in Python using special scripts for the organization of internal resource operations. Due to the modular architecture it can be used on a wide class of computational problems and computational resources with different access protocols such as SSH and HTTP. Testing was performed on the example of solution of actual problems of nanotechnology using molecular dynamics. In these calculations an appearance of ultra-large data sets is a common phenomenon. Effective data management in this case becomes one of the important parts of the overall algorithm. Use of the KIAM Job_Control service confirmed this fact and helped to speed up the calculation process performed using several computer clusters.

Keywords: Cloud computing, Task management, Resource management, Scheduling parallel tasks

The work was supported by Russian Foundation for Basic Research (projects 15-07-06082-a, 15-29-07090-ofi_m).

c 2016 Dmitry V. Puzyrkov, Viktoria O. Podryga, Sergey V. Polyakov, Mikhail V. Iakobovskii

Références

Documents relatifs

Значението на социалния опит в изграждането, усвояването и използването на езика често се възприема като безспорно и ясно и обясненията за ролята му може да

Due to such approach, at this stage, we are able to implement simple AI based on rule-based inferencing system, which is able to provide additional information for user

EXPRESSES CONCERN at the deterioration in the health conditions of the Arab population in the occupied Ar^b territories, affirming that it is the role of the World Health

После введения, показывающего актуальность сетей распределенных вычислений, основанной на грид-облачных структурах в эпоху Больших Данных,

В статье рассмотрены основные принципы представления формальной семантики языка HIL, предназначенного для описания сложных потоков работ интеграции

Alexei Klimentov, Ruslan Mashinistov, Alexandr Novikov, Alexey Poyda, Ivan Tertychnyy In this paper an approach to manage computing powers of grids, cloud platforms,

Также код распараллелен используя технологию CUDA, что дает ускорение до 50 раз по сравнению с одним ядром CPU.. Программа может использовать

В работе описывается интеграция платформы Everest с одиночными вычислительными ресурсами и грид-инфраструктурой EGI, а также рассматриваются проблемы, связан- ные