issn 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ №1(24), 2015, с. 39-49
УДК 004.438
В. В. Губарев, П. В. Мищенко
Распределенная вычислительная система для подготовки специалистов в области высокопроизводительных вычислений
Аннотация. Статья посвящена вопросам применения высокопроизводительных средств для подготовки специалистов в области параллельных вычислений. Рассматриваются различные способы организации образовательного процесса, обсуждаются сильные и слабые стороны каждого из подходов. Подробно описывается предложенный подход создания вычислительной системы на основе персональных компьютеров, объединенных в локальную или глобальную сеть.
Ключевые слова и фразы: высокопроизводительные вычислительные системы, параллельный алгоритм, крупноблочное распараллеливание.
Введение
Высокопроизводительные вычисления в настоящее время являются одним из наиболее приоритетных и стратегически важных направлений для многих стран мира. Однако развитие данного направления сталкивается с рядом проблем. На данный момент ярко выражена тенденция роста количества разработок аппаратных средств высокопроизводительных вычислений, в то время как программные средства, способные организовать их эффективное использование, появляются только спустя годы. Это приводит к простою потенциально необходимых вычислительных мощностей. Имеющиеся в России высокопроизводительные вычислительные средства, как правило, используются для проведения научных исследований и в образовательных целях. При этом главной целью создания вычислительных систем (ВС) является достижение роста в сфере экономики, промышленности, медицины и других областях за счет эффективного расчета используемых ресурсов, оптимизации процесса их добычи
© В. В. Губарев, П. В. Мищенко, 2015
© Новосибирский государственный технический университет, 2015 © Программные системы: теория и приложения, 2015
и т.п. Именно эти ресурсоемкие с точки зрения вычислений задачи должны решать высокопроизводительные системы.
Проблема целевого применения ВС возникает по ряду причин. Одной из них является нехватка высококвалифицированных специалистов в области высокопроизводительных вычислений и, как следствие, дефицит параллельных алгоритмов, предназначенных для решения конкретных прикладных задач. Для создания таких алгоритмов разработчики должны обладать определенными знаниями о системе, для которой предназначается параллельный алгоритм, а также иметь достаточный опыт работы со специализированными средствами их создания. Обостряет проблему и отсутствие конкретных рекомендаций по разработке и эффективной реализации параллельных алгоритмов того или иного класса задач. Накопленный исследователями опыт, к сожалению, в большинстве случаев остается интеллектуальной собственностью авторов и не выходит за рамки статей, которые лишь в общих чертах описывают полученные результаты. Это приводит к тому, что каждый исследователь, не имея возможности воспользоваться разработками своих коллег, вынужден начинать работу с самого начала. Не стоит оставлять без внимания и тот факт, что на данный момент в России для высокопроизводительных вычислений в подавляющем большинстве случаев применяются зарубежные аппаратные и программные средства ввиду большого разрыва между иностранными и отечественными результатами разработок в данной сфере. В связи с этим у пользователей современных систем, как правило, уходит достаточно много времени, чтобы разобраться в англоязычной документации, а также принципах программирования [1]. При этом применение потенциала суперкомпьютерных технологий (СКТ) как значимой составляющей инновационного развития страны является задачей государственной важности, относится к приоритетному направлению и находится под постоянным контролем Президента и Правительства России. Значимость развития и практического использования СКТ ставит перед системой высшего образования чрезвычайно серьезную проблему подготовки кадров в области высокопроизводительных вычислений [2].
1. Подготовка специалистов в области высокопроизводительных вычислений
В связи с развитием области высокопроизводительных вычислений и их применением для решения прикладных задач становится актуальным вопрос внедрения высокопроизводительных систем в
учебный процесс с целью обучения студентов, магистрантов и аспирантов современным подходам и методам вычислений. В этих целях применяются как сосредоточенные вычислительные системы (суперкомпьютеры, кластеры), так и распределенные системы (ГРИД-вычисления) [3,4]. Однако соответствующие вычислительные комплексы имеются в весьма ограниченном количестве. В первую очередь это обусловлено высокой стоимостью их приобретения и обслуживания. При этом нельзя забывать о том, как быстро эти дорогостоящие вычислительные средства становятся устаревшими.
На наш взгляд, целесообразно заострить внимание не на тех образовательных учреждениях, которые уже имеют в распоряжении суперкомпьютер или ГРИД-систему и добились успешного внедрения в образовательный процесс, а на тех, кто стремится не оставлять без внимания столь перспективную область, но сталкивается с рядом трудностей. Среди них — необходимость обоснования перед руководством целесообразности приобретения того или иного аппаратного и программного обеспечения, создание соответствующей лаборатории, набор и обучение уверенному пользованию персонала лаборатории и, что наиболее важно и проблематично, обучение профессорско-преподавательского состава навыкам работы с приобретенным вычислительным средством. На фоне сказанного вопросы создания рабочих программ дисциплин и их внедрения в учебный процесс в качестве факультатива или в рамках дисциплин, предусмотренных ФГОС, кажутся вполне решаемыми задачами.
Рассмотрим ситуацию непреодолимости вышеперечисленных проблем и будем исходить из условий отсутствия высокопроизводительных вычислительных средств в подразделениях университета и невозможности их приобретения. Ряд университетов находит выход из сложившейся ситуации в сотрудничестве с коллегами из других ВУЗов, имеющих высокопроизводительные системы. Учебный процесс в этом случае организуют с помощью удаленного доступа. Однако из личных наблюдений авторов можно сделать вывод, что при таком подходе обучающиеся воспринимают занятия как работу в эмуляторе, а сама ВС ассоциируется с «черным ящиком». Таким образом, дисциплина не получает должного восприятия, что впоследствии сказывается на усвоении информации и уровне знаний.
Другой подход подразумевает разработку собственного метода построения высокопроизводительных ВС. Этот подход к решению проблем использования современных ВС предполагает создание аппарата, предоставляющего возможность решения прикладных задач большой размерности и разработку понятных для программистов
рекомендаций по написанию соответствующих алгоритмов. Также следует акцентировать внимание на доступности и простоте применения разрабатываемых методов построения ВС.
На кафедре Вычислительной техники (ВТ) Новосибирского государственного технического университета (НГТУ) предложен подход создания высокопроизводительных систем. Он заключается в организации Распределенных вычислительных систем с программируемой структурой (РВС ПС) на базе персональных компьютеров, подключенных к локальной или глобальной сети. На основании теоретических исследований для организации и согласованного функционирования РВС ПС разработано специализированное программное обеспечение — приложение РВС ПС, которое проходит процедуру государственной регистрации. На каждой ЭВМ запускается специализированное ПО, обеспечивающее ввод и вывод данных, а также взаимодействие вычислителей при решении задачи. Обменные взаимодействия осуществляются посредством стека протоколов TCP/IP.
Предложенный подход является доступным для малобюджетных предприятий, т.к. не требует значительных затрат: для организации РВС ПС могут быть использованы имеющиеся ПК, подключенные к локальной или глобальной сети. Вместе с тем подход является простым и понятным в использовании, т.к. предполагает наличие подробного описания алгоритмов функционирования РВС ПС, а также рекомендаций по разработке параллельных алгоритмов, предназначенных для данной системы [3].
Наиболее распространенным аналогом предлагаемого подхода является MPI. К его основным недостаткам следует отнести сложность освоения пользователем принципов программирования и работы систем с применением этого подхода, а также крайне малое количество русскоязычной литературы по данной тематике. При более детальном сравнении MPI и РВС ПС можно выделить ряд наиболее значимых отличий. В РВС ПС было решено использовать язык C#, который характеризуется большей простотой и легкостью освоения нежели С H—h, исчезает необходимость работы с памятью, используются стандартные типы данных. Помимо простоты освоения языка программирования стоит обратить внимание на простоту работы с библиотекой: количество функций в MPI на порядок больше, чем в РВС ПС. При этом стоит подчеркнуть, что и возможностей при использовании MPI больше, т.к. подход более детально проработан. Еще одним принципиальным отличием является используемый метод распараллеливания задач — в MPI применяется мелкозернистое (локальное) распараллеливание, а при создании алгоритмов для
РВС ПС следует использовать крупноблочное распараллеливание, о котором более подробно будет сказано позже.
2. Особенности подхода
Основными принципами вышеописанного подхода являются:
• Минимизация затрат на создание и эксплуатацию системы. В качестве вычислительной мощности используются серийные ПК, обменные взаимодействия осуществляются через локальную или глобальную сеть.
• Распределенность (рассредоточенность) допускает включение в систему территориально удаленных вычислителей.
• Децентрализованное управление и функциональная однородность: управление вычислительным процессом, а также ввод исходных данных и вывод результата могут осуществляться с любого ПК.
• Живучесть — способность системы при отказе отдельных элементов продолжать выполнять свои функции. При выходе из строя одного из вычислителей приходящаяся на него часть вычислений перераспределяется между остальными ПК системы или в состав системы включают необходимое количество вычислителей.
• Переменность структуры — изменение структуры и связей между элементами системы с целью достижения наибольшей адекватности между системой и конкретной задачей; возможность организации подсистем для решения набора/потока задач.
Как уже упоминалось ранее, применяется метод крупноблочного распараллеливания. Эффективность реализации параллельного алгоритма в значительной степени зависит от методики распараллеливания.
Существует два подхода при распараллеливании задач: локальное (мелкозернистое) и глобальное (крупноблочное). Первый подход требует расчленения на слишком простые части (элементарные операции) и, как показывает опыт, приводит к сложностям достижения эффективной реализации параллельных алгоритмов. Второй подход позволяет осуществлять разбиение задачи на крупные блоки-подзадачи, между которыми существуют слабые связи. Говоря иначе, в алгоритмах, построенных на основе крупноблочного распараллеливания, операции обмена между подзадачами составляют незначительную часть по сравнению с общим числом операций в каждой подзадаче. Такие подзадачи называют ветвями параллельного алгоритма. Все ветви идентичны, каждая реализуется своим
вычислителем. Одним из подходов к крупноблочному распараллеливанию является распараллеливание по циклам. При этом подходе процесс решения задачи представляется в виде параллельных ветвей, полученных расщеплением цикла на части, число которых в пределе равно числу повторений цикла. На входе и выходе из цикла параллельный процесс сводится к последовательному процессу вычислений, доля которого в общем времени незначительна. Говоря иначе, процесс вычислений можно представить в виде периодически повторяющихся параллельных ветвей, перемежающихся последовательными процессами [5].
В процессе решения задачи между вычислителями системы осуществляются межмашинные взаимодействия:
• при коллекторном обмене в одну ветвь собирается информация от остальных ветвей;
• при трансляционном от одного вычислителя передается информация во все остальные;
• при дифференцированном обмене производится передача информации из одной ветви в некоторые выделенные.
Эти обменные взаимодействия осуществляются с помощью следующего набора команд настроек, позволяющих программировать структуру ВС и задавать степень участия каждой ЭВМ при функционировании системы.
• Команды обмена — системные команды передачи и приёма. Посредством этих команд в РВС ПС осуществляются все обменные взаимодействия.
• Команда обобщенного условного перехода позволяет управлять параллельными вычислительными процессами по значениям обобщённых признаков. Эта же операция может быть использована для синхронизации ЭВМ перед обменом.
• Команды обобщённого безусловного перехода предназначаются для принудительного управления работой РВС ПС. Команда может быть использована для вмешательства в вычислительный процесс из одной ЭВМ в любую другую ЭВМ системы. При выполнении операции информация из данной ЭВМ передается в другие машины, где воспринимается как команда, подлежащая исполнению. Данная команда (или программный модуль) должна быть выполнена немедленно, а затем процесс счета продолжается в заранее предусмотренном параллельным алгоритмом порядке.
Приведенный набор системных операций является полным, с его помощью можно осуществить самые разнообразные схемы организации параллельного вычислительного процесса.
Система может функционировать в режиме решения одной задачи, набора задач, потока задач или в режиме автономной работы. Рассмотрим каждый из режимов более подробно.
• Режим решения задачи предполагает использование всей вычислительной мощности системы.
• При режиме решения набора задач каждая задача характеризуется своими параметрами: размерностью, временем решения, количеством вычислителей, необходимых для решения задачи и др. Требуется предложить алгоритмы распределения задач между вычислителями и выбрать последовательность их решения, исходя из требований обеспечения эффективного функционирования системы. При работе в данном режиме возникает необходимость организации подсистем, каждая из которых ориентирована на решение конкретной задачи из набора.
• Режим решения потока задач имеет определенную сложность, которая заключается в том, что задачи имеют случайные параметры и поступают в систему в случайные моменты времени. Следовательно, спрос на различные конфигурации системы будет случайным. Анализ эффективности функционирования РВС ПС может быть выполнен при помощи методов теории массового обслуживания. В результате анализа можно выработать рекомендации по организации работы РВС ПС.
• В режиме автономной работы осуществляется непосредственная связь пользователя одной ЭВМ со всеми остальными, управление системой, доступ к системной информации и пр.
3. Внедрение подхода в образовательный процесс
На кафедре реализован фрагмент экспериментальной РВС ПС: научно-образовательная вычислительная система «Пара» (НОВС «Пара»). Используются ПК лабораторий, объединенные в сеть Fast Ethernet. На каждом ПК запускается специализированное ПО, обеспечивающее ввод и вывод данных, а также обменные взаимодействия посредством стека протоколов TCP/IP. Дальнейшее расширение НОВС ориентировано на тиражирование разработанного ПО и подключение к ней других кафедр седьмого корпуса НГТУ.
Внедрение системы в образовательный процесс запланировано на 2015 учебный год. Использование системы позволит организовать
практические занятия на такие темы, как «Изучение и сравнительный анализ подходов к реализации высокопроизводительных вычислений», «Освоение принципов применения крупноблочного распараллеливания», «Создание и апробация параллельных алгоритмов задач различных классов», «Варьирование количеством ПК, участвующих в вычислениях конкретной задачи, с целью достижения наибольшей эффективности реализации параллельного алгоритма», «Анализ функционирования системы в режимах решения набора/потока задач», «Алгоритмы функционирования системы при отказах» и др.
Важным аспектом является сотрудничество с предприятиями и научными подразделениями, нуждающимися в решении ресурсоемких с точки зрения вычислений задач. Организация практических занятий на основе решения реальных прикладных задач позволит в явном виде показать обучающимся актуальность изучаемой дисциплины и область применения получаемых навыков. Студенты, успешно прошедшие курс обучения, могут быть направлены на практику на предприятия и заводы, где их целью будет создание и внедрение РВС ПС. По окончании практики студенты могут продолжить работу на предприятиях в качестве сотрудников.
Стоит отметить, что описанный в статье подход является доступным для малобюджетных учреждений, т.к. не требует значительных затрат: для организации РВС ПС могут быть использованы имеющиеся в наличии ПК, подключенные к локальной или глобальной сети. Вместе с тем подход является простым и понятным в использовании, т.к. предполагает наличие подробного описания алгоритмов функционирования РВС ПС, а также рекомендаций по разработке параллельных алгоритмов, предназначенных для данного типа систем. Заинтересованные ВУЗы могут использовать подход в образовательных и научных целях. Созданная система позволит расширить учебный процесс, который обычно ограничен теоретической частью, и организовать практические занятия для обучающихся.
Заключение
Область применения высокопроизводительных средств постоянно расширяется. В настоящее время без применения высокопроизводительных вычислительных систем нельзя представить успех таких областей как машиностроение, медицина, добыча нефти и газа и многих других. При этом с каждым годом все ощутимее становится дефицит специалистов высокопроизводительных вычислений. В
образовательных целях применяются суперкомпьютеры и ГРИД-си-стемы, однако соответствующие вычислительные комплексы имеются в весьма ограниченном количестве.
В условиях отсутствия собственных систем некоторые университеты налаживают сотрудничество и организуют практические занятия посредством удаленного доступа к вычислительным ресурсам. Другим способом организации учебного процесса является создание вычислительных систем на базе имеющихся в ВУЗе аппаратных средств. В качестве программных средств может быть использовано общедоступное ПО или же можно прибегнуть к разработке собственного программного обеспечения, отвечающего потребностям потенциального пользователя.
Каждый из подходов несомненно имеет сильные и слабые стороны. При выборе одного из них стоит исходить из финансовых возможностей, уровня знаний профессорско-преподавательским составом технологий высокопроизводительных вычислений и их уровня владения навыками параллельного программирования и, конечно же, из конкретизации целей внедрения высокопроизводительных средств в образовательный процесс.
В заключение стоит отметить, что без ликвидации разрыва между иностранными и отечественными достижениями в области высокопроизводительных вычислений не могут быть решены задачи получения конкурентных результатов исследований и разработок в «прорывных технологиях», не может быть обеспечено ускоренное развитие России и завоевание ею достойного места в мировой экономике.
Список литературы
[1] П. В. Мищенко, «Высокопроизводительные вычисления в современном образовании и науке», Современные тенденции в образовании и науке, Сборник научных трудов по материалам Международной науч.-практ. конф., в 26 частях. Т. 7 (31 октября 2013 г.), Изд-во ТРОО «Бизнес-Наука-Общество», Тамбов, 2013, с. 101-103 Г 40.
[2] Альманах «Суперкомпьютерные технологии в науке, образовании и промышленности», №1-3 (дата обращения: 25.10.2014), и^ http://hpc-russia.ru/book_superproblems6.html Г 40.
[3] В. К. Мищенко, П. В. Мищенко, В. В. Губарев, «Практические аспекты реализации и применения высокопроизводительных средств ВТ для малобюджетных предприятий», Актуальные проблемы электронного приборостроения, Тр. 12 междунар. конф., в 7 частях. Т. 6, АПЭП-2014
(Новосибирск, 2-4 окт. 2014 г.), Изд-во НГТУ, Новосибирск, 2014, с. 260-263 | 41, 42.
[4] В. И. Гужов, В. В. Пономарев, В. В. Губарев. «Обучение неоднородным распределенным информационным средствам и технологиям на базе грид-системы „ГРИНТУ"», Вгсник Державного унгверситету гнформацигйно-комунгкацгйних технологгй (ДУ1КТ), 7:2 (2009), с. 188-191 | 41.
[5] В. Г. Хорошевский, Архитектура вычислительных систем, Учеб. пособие, 2-е изд., перераб. и доп., Изд-во МГТУ имени Н. Э. Баумана, М., 2008, 520 с. | 44.
Рекомендовал к публикации Программный комитет
Третьего национального суперкомпьютерного форума НСКФ-2014
Об авторах:
Василий Васильевич Губарев
Заслуженный деятель науки РФ, заслуженный работник высшей школы РФ, д. т. н., профессор кафедры вычислительной техники НГТУ. Автор более 500 научных и учебных публикаций в области имитации и прогнозирования случайных сигналов, вероятностного моделирования реальных объектов, статистических прикладных информационных систем, системного анализа в экспериментальных исследованиях, концептуальных основ информатики и качества образования.
e-mail: gubarev@vt.cs.nstu.ru
Полина Валерьевна Мищенко
Аспирант, ассистент кафедры Вычислительной техники Новосибирского государственного технического университета. Область научных интересов — высокопроизводительные вычислительные системы, информационные сети.
e-mail: mpv-777@yandex.ru
Пример ссылки на эту публикацию:
В. В. Губарев, П. В. Мищенко. «Распределенная вычислительная система для подготовки специалистов в области высокопроизводительных вычислений», Программные системы: теория и приложения, 2015, 6:1(24), с. 39-49. URL http://psta.psiras.ru/read/psta2015_1_39-49.pdf
Polina Mishchenko, Vasilij Gubarev. The distributed computer system for training specialists of high performance computing.
Abstract. The article is dedicated to questions of appliance high-performance tools for training specialists of parallel computing. Different methods of educational process organization is considered, strengths and weaknesses of this methods are discussed. After that the proposed approach of creating computing system based on personal computers connected into local or global network is described in detail. (In Russian).
Key Words and Phrases: high-performance computing systems, parallel algorithm, coarse-grain parallelism.
Sample citation of this publication
Polina Mishchenko, Vasilij Gubarev "The distributed computer system for training specialists of high performance computing", Program systems: theory and applications, 2015, 6:1(24), pp. 39-49. (In Russian.) URL http://psta.psiras.ru/read/psta2015_1_39-49.pdf
© P. V. Mishchenko, V. V. Gubarev, 2015 © Novosibirsk State Technical University, 2015 © Program systems: Theory and Applications, 2015