Научная статья на тему 'Технология сетевого доступа к программной среде matlab на основе кластерной вычислительной системы'

Технология сетевого доступа к программной среде matlab на основе кластерной вычислительной системы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
223
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
УДАЛЕННЫЙ ДОСТУП / ПРОГРАММНЫЙ КОМПЛЕКС MATLAB / МНОГОПОЛЬЗОВАТЕЛЬСКАЯ РАБОТА / ВЫЧИСЛИТЕЛЬНЫЙ КЛАСТЕР

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Болдырев Юрий Яковлевич, Варгаузин Виктор Анатольевич, Петухов Евгений Павлович, Цикин Игорь Анатольевич

Рассмотрены принципы сетевого доступа к программному комплексу MATLAB. Изложены особенности работы комплекса на вычислительной кластерной системе.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Principles of remote network access to MATLAB software environment are considered. Specificity of particular software operation on computer cluster system is stated

Текст научной работы на тему «Технология сетевого доступа к программной среде matlab на основе кластерной вычислительной системы»

Телекоммуникационные системы и компьютерные сети

УДК 004.771

Ю.Я. Болдырев, В.А. Варгаузин, Е.П. Петухов, И.А. Цикин

ТЕХНОЛОГИЯ СЕТЕВОГО ДОСТУПА К ПРОГРАММНОЙ СРЕДЕ МАТ1-АВ НА ОСНОВЕ КЛАСТЕРНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ

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

Одной из наиболее широко распространенных сегодня специализированных сред математического моделирования является MATLAB. Эта среда ориентирована на использование возможностей параллельных вычислений [ 11, которые в наиболее полной мере реализуются в кластерных многоядерных вычислительных системах (многоядерный компьютер с архитектурой SMP— Symmetric Multiprocessing или кластерная система типа МРР — Massively Parallel Processing) [2]. Примеры эффективного использования MATLAB на кластерной вычислительной системе можно найти в [3,4].

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

важен механизм использования лицензий в разных режимах работы кластера.

Особенности функционирования MATLAB на кластерной вычислительной системе

Предварительно отметим, что кластерные вычислительные системы — это многопроцессорные комплексы, состоящие из так называемых узлов, каждый из которых состоит из двух процессоров и может, например, иметь свою (узловую) память. При этом следует иметь в виду, что каждый из современных процессоров состоит из нескольких "процессоров-ядер". Наиболее распространенные сегодня процессоры — это 4-ядер-ные системы AMD Barcelona и Intel Harpertown.

Пользователи взаимодействуют с кластерной системой в режиме удаленного доступа своих персональных компьютеров к одному из узлов кластерной системы, выделенному как "головной узел". При этом подразумевается, что пользователи не располагают средой MATLAB на своих компьютерах, а работают с ней в терминальном режиме (для ОС Windows — режим "удаленный рабочий стол" [5]).

При этом сам программный комплекс MATLAB устанавливается либо только на головном узле, либо на всех компьютерах кластерной системы.

Комплекс MATLAB включает средства разработки программ (язык MATLAB и среда моделирования Simulink) и большое число библиотек функций и моделей (Toolbox и Blocksets) для различных приложений. Особое место занимает библиотека программных средств РСТ - Parallel Computing Toolbox (в ранних версиях MATLAB — Distributed Computing Toolbox), предоставляющая

пользователям программные средства повышения скорости решения задач с использованием любых остальных средств MATLAB.

Для управления ресурсами кластерной вычислительной системы MATLAB включает программную компоненту MDCS — MATLAB Distributed Computing Server (в ранних версиях MATLAB — Distributed Computing Engine). При этом MDCS может использовать разные планировщики заданий (встроенный в MATLAB планировщик Job Manager фирмы MathWorks, сторонний планировщик Windows из состава ОС Microsoft Windows Compute Cluster Server (WCCS) и т. п.).

Поскольку планировщики отличаются принципом управления вычислительными процессами, получившими в терминологии MATLAB термин "workers" (начиная с версии MATLAB R2009a они ассоциируются с процессорными ядрами), то процедура установки MATLAB зависит от выбора планировщика. При

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

В случае использования встроенного в MATLAB планировщика Job Manager вычислительный ресурс резервируется и в случае, когда решение задачи не происходит. Для обеспечения работоспособности такого планировщика требуется установка комплекса MATLAB на каждый узел кластерной вычислительной системы.

Кластерная вычислительная система

Головной узел

/Parallel Computing Toolhox^\

^ Local worker

X

^ Local worker ^

/- \

( Local worker J

JL.

^ Local worker ^

Simulmk. Blocksets. Toolboxes

V

n

MATLAB

MATLAB Distributed Computing Server

Планировщик / заданий

Рис. 1. Функционирование MATLAB на кластерной вычислительной системе

Выбор планировщика основывается на требованиях к его возможностям. Так, для организации многопользовательской работы особо важно количество одновременно решаемых задач. Встроенный планировщик Job Manager в версии R2009a не позволяет организовать систему очередей при обработке заданий: задача пользователя может быть решена только при наличии свободных ресурсов на момент ее постановки. В то же время сторонние планировщики изначально ориентированы на работу с очередью задач.

Важно отметить, что выбор планировщика также влияет на порядок использования лицензий в разных режимах работы кластера. В случае использования планировшика Job Manager оказываются постоянно задействованными лицензии "MATLAB Distributed Computation Engine". При использовании же стороннего планировщика лицензии будут запрошены только на время решения задач.

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

Пользовательский доступ к кластерной вычислительной системе

Пользователь в режиме удаленного доступа может располагать вычислительным ресурсом как исключительно одного головного узла (ло-

кальная конфигурация РСТ на основе "local" на рис. 1), так и всей кластерной вычислительной системы (кластерная конфигурация РСТ на основе "workers" на рис. 1).

В локальной конфигурации число доступных процессорных ядер и соответственно процессов (local workers) головного узла на момент выхода версии MATLAB R2009a не превышает четырёх.

Для доступа к большему ресурсу кластерной вычислительной системы требуется лишь перенастроить РСТ с локальной конфигурации на конфигурацию такой системы. Для примера на рис. 2 такая конфигурация имеет имя "ccsconfrg".

В результате для пользователя различие между локальной и кластерной конфигурациями РСТ сводится лишь к различию числа доступных workers. Поэтому в терминологии MATLAB любая группа workers (включая локальную конфигурацию РСТ) называется "кластером" (не путать с кластерной вычислительной системой на рис. 1) и не связывается с физической природой workers. Количество workers "кластера" в терминологии MATLAB называется размером "кластера" (ClusterSize). Пользователь MATLAB может всегда получить доступный ему через РСТ ресурс с помощью команды f indResource. Например, "кластер" с конфигурацией "ccsconfig" имеет размер 16 (рис. 3).

Специфика использования РСТ

Втерминологии MATLAB эффект ускорения вычислений при решении задачи группой workers интерпретируется как некий невидимый для

Рис. 2. Выбор конфигурации РСТ для кластерной вычислительной системы

Server Compute Cluster - epsilon.cluster.spbstu.ru - Удаленный рабочий... f5j|!R

I I^MATLAB 7.8.0 (R2009a) В

File Edit Debug Parallel Desktop Window Help

J _J 1 * -ti ■ & Э? Fj 44 C:\Documents and 5ettings\up0905wa\My Doci

Shortcuts iJ How to Add What's New

» scheduler=findResource

scheduler =

CCS Scheduler Information

Type : CCS

ClusterSi2e : 16

DataLocation : \\wmasterN share\mattest

HasSharedFilesystem : true V

[< >

Рис. 3. Доступный ресурс в конфигурации РСТ с кластерной системой

пользователя переход от одного MATLAB к нескольким (MATLABS). Группа этих workers называется программным пулом, а сами workers программного пула — "labs" как противопоставление слову "lab" в единственном числе. Размер пула не превосходит размера "кластера". Активизация программного пула производится командой matlabpool.

К примеру, имея "кластер" из 16 workers, можно использовать лишь 15 из них в качестве labs программного пула для исполнения программы, а один оставшийся worker кластера — для текущей интерактивной работы в редакторе MATLAB или для создания модели Simulink. В терминологии MATLAB подобная возможность разделения кластера называется параллельной работой (Parallel Job).

Открыв программный пул, пользователь получает возможность в дополнение к языку MATLAB задействовать специальные функции РСТ. Так, для программирования "параллельного цикла" можно использовать оператор PARFOR, автоматически превращающий последовательный цикл в параллельный. Этот оператор представляет собой эффективную альтернативу стандартному оператору цикла FOR языка MATLAB. Для организации распределённых

вычислений в многоядерной компьютерной среде (Disributed Job) в РСТ имеется около 150 функций (алгоритмов), позволяющих распределять как вычисления, так и требуемый объём памяти по вычислительной кластерной системе. Эти функции в свою очередь могут быть вызваны функцией распределённых вычислений df eval (Distributed FEVAL), работающей с распределенными массивами. Обработка каждой части распределённого массива ассоциируется с отдельной задачей. Результаты обработки отдельных массивов в каждой из задач могут быть собраны функцией конкатенации cat.

Начиная с версии MATLAB R2008b нетривиальное программирование подобных алгоритмов может быть упрощено за счёт использования мощной программной конструкции SPMD (Single Program Multiple Data).

Итак, РСТ поддерживает режимы программного пула, параллельной работы и распределённых вычислений. Проверить работоспособность этих режимов можно менеджером настроек РСТ.

Пример проверки работоспособности (статуса) РСТс планировщиком ees приведён на рис. 4. Статус этой конфигурации отмечен "галочкой", что свидетельствует о доступности этого ресурса (Find Resource Succeeded) и возможности ис-

^Configurations Manager

File Edt

m

Default [Name L. |Type [Descripbon I Valid J

G ccsconfig CCS ж

Г jobmanagertest jobmanager test —

Г local local — T

Configuration Validation

Name: ccsconfig Type: ccs Status: ©

Test Stage Status

Find Resource ©Succeeded Detafc.

Distributed Job © Succeeded Ctttafe..

ParaReJJob ©Succeeded Detafc..

Matlabpool ©Succeeded Oetak..

г Max Time Per Stage-

biO Seconds F Use Default

Help I [" Start Valk&jon ]

Рис. 4. Результат проверки статуса конфигурации РСТ для кластерной системы с планировщиком ccs

пользования распределённых вычислений (Distributed Job Succeeded), параллельной работы (Parallel Job Succeeded) и программного пула (Matlabpool Succeeded).

Тестирование

Ниже рассмотрены результаты двух тестов, проведённых на 12-ядерной кластерной системе. Первый тест иллюстрирует эффективность использования оператора параллельного цикла PARFOR, второй - программной конструкции SPMD. Сущность основного результата тестов проста: эффективность использования РСТ почти линейно растёт с ростом числа используемых workers в программном пуле.

Тест оценки эффективности оператора PARFOR. Для оценки эффективности оператора PARFOR в MATLAB был использован тест, основанный на компьютерном варианте карточной игры Blackjack с любым числом игроков, каждый из которых имеет большое число "рук". Алгоритм игры основан на методе статистического моделирования Монте- Карло. Тест может быть запущен либо из командной строки MATLAB командой paralleldemo_parf or_bench, либо ИЗ демонстрационной системы MATLAB.

На рис. 5 показана зависимость степени повышения скорости вычислений от числа workers в программном пуле при локальной конфигурации РСТ водной изстаигр, а на рис. 6 представ-

лено процентное соотношение ситуаций выигрыша, который удалось получить при решении тестового набора из ста задач при использовании четырех вычислительных потоков.

Тест оценки эффективности программной конструкции SPMD. Хорошим примером использования программной конструкции SPMD является тест оценки эффективности алгоритмов векторных и матричных вычислений. Тест может быть запушен либо из командной строки MATLAB командой paralleldemo_resource_bench, либо из демонстрационной системы MATLAB. Этот тест впервые появился в версии MATLAB R2009a.

Эффект повышения скорости вычислений в зависимости от числа workers иллюстрирует рис. 7. В тесте используются алгоритмы быстрого преобразования Фурье (fit) и матричного умножения (matrix mult).

На рис. 8 приведена зависимость степени ускорения векторных и матричных вычислений от размера вектора (квадратной матрицы) для локальной конфигурации РСТ. Используются алгоритмы быстрого преобразования Фурье (vector fft), матричного умножения (matrix mult), обращения матрицы методом треугольной декомпозиции (matrix LU), приведения матриц к диагональному виду (matrix SVD) и нахождения собственных векторов и чисел (matrix eig).

Рис. 5. Зависимость степени повышения скорости вычислений от числа workers в программном пуле

1 Server Compute Cluster - opsi1on.clusler.spbstu.ru Учтенных рабочий trot _ Я -х

f igure 1: BldfkfArh

Ffe ЕЛ Vtow Insert Tods Desktop Window Hofc

uadij Ь j ч ч о © € A • I Q1 □ В | a

Speedup of parfor with 12 workers

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

>6 9.9 10 10.1 10 2 10.3 10 4 105 10 6 107 Speedup

Рис. 6. Процентное соотношение выигрышных ситуаций

Ъ bei ver Compute Clustei epsilon.cluster.spbblu.ru Удаленным рабочим сил TÏfiïC

f »«jure 1

Fie ЕЛ view Insert Tools Desktop Window Heb

J j wd ^ I fc ; \ % o ® V ^ • s I □ [B| g o

Effect of number of concurrent processes on resource contention and speedup

2 6

2 3 4 5 6 7 8 9 10 11 12 Number of concurrent processes

Рис. 7. Зависимость степени повышения скорости вычислений от числа workers в программном пуле

Server Compute Cluster - epsilon.clusler.spbstu.iu - Удаленный рабочий cron - m m

I Kjurc J

Fie ЕЛ View Insert TooK Desttop Window He*>

"J J A k Ч ч f) S V yi • в □ '0 "n S

no

Effect of data size on resource contention and speedup

............< )

'в.......

•—B— vector ff! —0— matnx mult

matn» LU --€>•- matnx SVD

matrix eig -----ideal speedup

128*2

256*2 512*2 1024-2

Number of elements per process

2048*2

Рис. 8. Зависимость степени ускорения векторных и матричных вычислений от размера вектора (квадратной матрицы)

В итоге отметим, что рассмотренный программно-аппаратный комплекс продемонстрировал возможности удаленного использования среды математического моделирования МЛТ1ЛВ на каастерной вычислительной системе. Также показана эффективность средств

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

СПИСОК ЛИТЕРАТУРЫ

1. Gaurav Sharma, Jos Martin. MATLAB: A Language for Parallel Computing: Springer (Springerlink.com), 2008.

2. Luszczek P. Enhancing Multicore System Performance Using Parallel Computing with MATLAB. MATLAB Digest. 2009.

3. Пресс-релиз компании MathWbrk "Max Planck Institute of Biochemistry Uses MathWortts Tools in its Quest to Cure Cancer". 2009. http://www.mathworks.com/ company/pressroom/articles/article31269.html

4. Ghidella J R., Wakefield A., Grad-Freilich S.

et al. The Use of Computing Clusters and Automatic Code Generation to Speed Up Simulation Tasks: Modeling and Simulation Technologies Conf. and Exhibit. 20-23 August 2007. Hilton Head, South Carolina.

5. Варгаузин В.А., Иванов Д.И., Цикин И.А.

Сетевой доступ к среде моделирования MATLAB на базе служб терминала: Учеб.-метод, пособие. СПб.: Изд-во Политехи, ун-та, 2008.

УДК: 004.75

А.Н. Фирсов

ОЦЕНКА НАДЕЖНОСТИ АСИНХРОННЫХ РАСПРЕДЕЛЕННЫХ СИСТЕМ, УСТОЙЧИВЫХ К ПРОИЗВОЛЬНЫМ ОТКАЗАМ

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

Византийская модель сбоев [1], или модель произвольных сбоев, — наиболее общая и включает в себя все остальные. Она не накладывает никаких ограничений надействия сбойных процессов и благодаря этому позволяет моделировать такие типы сбоев, как поломка оборудования, потеря связи, неисправность оборудования, программные сбои, ошибки операторов и действия злоумышленников.

Особый интерес представляют асинхронные распределенные системы, так как они не накладывают никаких временных ограничений и благодаря этому идеально подходят для работы в сети Интернет. Наиболее универсальной моде-

лью вычислительного узла является машина с конечным числом состояний (state machine).

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

1. Проблемы существующих решений

Существует несколько систем, отвечающих приведенным выше требованиям: Rampart [2], Secure Ring [3], BFT[4] и др. Они реализуют единственный известный на сегодня программный метод защиты от произвольных сбоев - активную репликацию. Суть метода заключается в том, что параллельно выполняется несколько копий (или, как их еще называют, реплик) одной и той же программы.

i Надоели баннеры? Вы всегда можете отключить рекламу.