Научная статья на тему 'Применение комплекса параллельного программирования Graphplus templet в моделировании'

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

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

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

ции, переменная состояния процесса принимает значение признака останова.

Рассмотрим примеры процессов, изображенных на рисунках 3 и 4. Вычисления начинаются с выполнения метода fork процесса Parent. Он формирует и отправляет сообщения call дочерним процессам по портам pi и p2. Так как из вершины не исходят дуги с пометками yes или no, обработка заканчивается. Сообщения call попадают в связанные дочерние процессы Child через порт p. Запускается метод proc. Его параметрами являются поступившее сообщение call и формируемое для отправки сообщение ret. В случае неуспешного завершения метода proc отправка сообщения ret не производится, а запускается метод error. Иначе в родительский процесс отправляется сообщение ret. При поступлении сообщения на порт pi в процесс Parent управление немедленно передается в метод join. Альтернативную возможность передачи управления реализует порт p2. Здесь происходит проверка типа поступившего сообщения. Метод join родительского процесса Parent запускается, когда ответные сообщения ret придут от обоих дочерних процессов.

Применение и программная реализация. Описанный метод моделирования применяется для разработки параллельных алгоритмов численного моделирования [5], его программная реализация подробно рассмотрена в [6]. Представленные в работе диаграммы кодируются на языке разметки XML. Они преобразуются транслятором моделей с языка разметки в исполняемый код на языке С++. Для исполнения сгенерированных программ имеются модуль системы исполнения с отладочным последовательным кодом, модули многопоточного исполнения для API Win32 и API POSIX, примеры тестовых приложений и графический редактор для создания моделей. Транслятор моделей реализован на языке C/C++, исполь-

зует SAX-парсер Expat 2.0.1 для разбора XML-файлов. Система автоматизации параллельного программирования, основанная на представленном методе моделирования параллельных процессов, доступна для использования на сайте СГАУ по адресу: http://graphplus.ssau.ru.

Литература

1. Process Description Capture Method. URL: http://www.id-ef.com/IDEF3.htm (дата обращения: 30.05.2012).

2. Unified Modeling Language. URL: http://www.omg.org/ spec/UML/ (дата обращения: 30.05.2012).

3. The Ptolemy Project. URL: http://ptolemy.eecs.berke-ley.edu/ (дата обращения: 30.05.2012).

4. Шеер А.В. ARIS - моделирование бизнес-процессов. Издат. дом «Вильямс», 2000. 175 с.

5. Востокин С.В. Визуальное моделирование в разработке параллельных алгоритмов. Метод и программные средства. LAMBERT Academic Publishing, 2011. 304 c.

6. Востокин С.В. Система автоматизации параллельного программирования Graphplus templet / В сб.: Параллельные вычисления и задачи управления: тр. Пятой междунар. конф. М.: ИПУ РАН, 2010. С. 1143-1156. URL: http://paco.ipu.ru/pa-co2010.iso (дата обращения: 30.05.2012).

References

1. Process Description Capture Method, available at: www. idef.com/IDEF3.htm (accessed 30.05.2012).

2. Unified Modeling Language, available at: www.omg.org/ spec/UML/ (accessed 30.05.2012).

3. The Ptolemy Project, available at: ptolemy.eecs.berke-ley.edu/ (accessed 30.05.2012).

4. Scheer A.W., ARIS — modelirovanie biznes protsessov (ARIS - Business Process Modeling), Moscow, 2000, 175 p.

5. Vostokin S.V., Vizualnoe modelirovanie v razrabotke pa-rallelnykh algoritmov. Metod i programmnye sredstva (Visual Simulation in Parallel Algorithm Development. Method and Software Tools), LAMBERT Academic Publishing, 2011, 304 p.

6. Vostokin S.V., Trudy pyatoy mezhdunarodnoy konferentsii «Parallelnye vychisleniya i zadachi upravleniya» (Proceedings of the Fifth International Conference «Parallel Computing and Management Problems»), Moscow, Institute of Control Sciences RAS, 2010, pp. 1143-1156, available at: www.paco.ipu.ru/paco2010.iso (accessed 30.05.2012).

УДК 519.685

ПРИМЕНЕНИЕ КОМПЛЕКСА ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ GRAPHPLUS TEMPLET

В МОДЕЛИРОВАНИИ

С.В. Востокин, д.т.н.; В.Г. Литвинов; А.Р. Хайрутдинов

(Самарский государственный аэрокосмический университет им. академика С.П. Королева (национальный исследовательский университет), [email protected], [email protected], [email protected])

Представлена программная реализация инструментария параллельного программирования Graphplus templet, автоматизирующего разработку параллельных программ для многопроцессорных рабочих станций и суперкомпьютеров. Данная разработка ведется с 2004 года на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета в рамках исследовательского проекта «Граф Плюс» (graphplus.ssau.ru). В статье развивается подход, позволяющий расширить и упростить применение высокопроизводительной вычисли-

тельной техники в численном моделировании. Ключевыми концепциями данного подхода являются применение типовых решений (паттернов) параллельного программирования, автоматическое распараллеливание и развертывание кода в различных программно-аппаратных архитектурах, разделение ролей системный программист - прикладной программист, использование интегрированных сред разработки и методов визуализации кода. Подход основан на авторской методологии проектирования параллельных процессов - TEMPLET-методологии. Описана структура новой версии программного комплекса автоматизации параллельного программирования Graphplus templet. Детально рассмотрены принцип функционирования транслятора графических моделей программ, исходные и выходные данные транслятора, его интеграция со средой MS Visual Studio. Показано применение программного комплекса для решения задач нелинейной динамики и компьютерной оптики. Приведены показатели эффективности сгенерированных в нем программ при исполнении на многопроцессорных рабочих станциях под управлением MS Windows и суперкомпьютере «Сергей Королев» Самарского государственного аэрокосмического университета, работающего под управлением Linux.

Ключевые слова: комплекс программ, параллельное программирование, модель вычислений, схемы программ, доменно-ориентированный язык, автоматизация программирования, численное моделирование.

APPLICATION OF PARALLEL PROGRAMMING PACKAGE GRAPHPLUS TEMPLET IN MODELING

Vostokin S. V., Ph.D.; Litvinov V.G.; KhayrutdinovA.R.

(Samara State Aerospace University, [email protected], [email protected], [email protected])

Abstract. Software implementation of parallel programming tools Graphplus templet is represented, which automates the development of parallel programs for multiprocessor work stations and supercomputers. This development has been carried out at the department of information systems and technologies of Samara State Aerospace University within the research project «Graph Plus» (graphplus.ssau.ru). The article develops the approach, which makes it possible to expand and simplify the use of high performance computing hardware in numerical simulations. The key concepts of this approach are the following: application of generic solutions (patterns) of parallel programming; automatic parallelizing and deployment of code on different software and harware architectures; allocation of roles of system programmer - application programmer; usage of integrated development environments and code visualization techniques. The approach is based on the authorial methodology of parallel processes design - TEMPLET-methodology. The structure of the new version of software complex of parallel programming automation Graphplus templet is described. The detailed review of functioning principle of a program graphic model translator, input and output data of the translator, its integration with MS Visual Studio environment is given. The usage of software complex for solution of problems of non linear dynamics and computer optics is shown. Efficiency factors for the programs generated in it in the course of executing on multiprocessor work stations run under MS Windows and on the supercomputer «Sergei Korolev» of Samara State Aerospace University operating under Linux are provided.

Keywords: software, parallel programming, computational model, program schema, domain specific language, automation of programming, numerical simulation.

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

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

типовых решений (паттернов) параллельного программирования, автоматическое распараллеливание и развертывание кода в различных программно-аппаратных архитектурах, разделение ролей системный программист - прикладной программист, использование интегрированных сред разработки (IDE) и методов визуализации кода на основе технологий XML.

Программный комплекс Graphplus templet [2] основан на модели процессов диффузного типа, в которой конструктивными элементами являются процессы и каналы. Процессы - пассивные объекты. Двунаправленные каналы, соединяющие пару процессов, - активные объекты. Процессы реализуют свои методы при поступлении сообщений по каналам и могут сформировать произвольное число ответных сообщений. Данная модель позволяет исключить конфликты одновременного доступа к памяти, свойственные многопоточной модели, гибко управлять состоянием вычислений, эффективно использовать компьютеры с распределенной и общей памятью.

Особенностью предлагаемого подхода является передача семантики модели программирования не на специальном, а на традиционном языке программирования. Примитивы для задания параллелизма не применяются. Для этого в препроцессоре системы Graphplus templet реализованы два алго-

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

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

Алгоритм распараллеливания кода следующий: 1) извлечение блоков пользовательского кода из исходной последовательной программы; 2) генерация новой программы с примитивами, необходимыми для данного варианта развертывания; 3) включение извлеченных пользовательских блоков в код сгенерированной параллельной программы.

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

Алгоритм генерации кода реализован авторами в специальном препроцессоре gpt.exe. Код программы пишется на языке C++. Модулем в данном случае является пара файлов: заголовочный файл с расширением (*.h) и файл реализации с расширением (*.cpp). Каждому модулю в проекте для IDE Microsoft Visual Studio соответствует файл с его XML-спецификацией, который включается в папку ресурсов приложения. Для файла XML-спецификации в проекте указывается, что перед сборкой проекта (pre-built) он должен быть обработан программой gpt.exe. Она генерирует фрагменты кода в файлах модуля. Кроме того, для файла XML-спецификации в настройках проекта указывается редактор. Им может быть как XML-редактор, визуализирующий модель посредством XSL-трансформации, так и специальный графический редактор, визуализирующий модель в виде ориентированного графа.

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

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

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

Для решения задачи нелинейной динамики использовалась схема ADI [2], реализующая метод переменных направлений в общей памяти. Алгоритм схемы предусматривает чередование построчного и постолбцового сканирования области заданного размера. Элементарные операции над ячейкой области на четных и нечетных обходах, а также структура данных зависят от конкретного алгоритма. Авторами рассматривалась параллельная реализация численного метода, описанного в работе [3].

Временные характеристики решения задачи нелинейной динамики приведены в таблице 1. В экспериментах на многоядерной настольной системе решалась задача на области размером 5000^5000 по пространству и 10 отсчетов по времени. Использовался компьютер Samsung RF710 (Intel Core i5 M460 2,53 GHz) с установленной ОС Windows 7 Ultimate 64 bits. Здесь и далее количество логических процессов - это параметр, влияющий на масштабируемость параллельного алгоритма. Значение его подбирается опытным путем для конкретных ЭВМ, схемы и алгоритма. Во всех экспериментах учитывалось время инициализации и очистки.

Таблица 1

Временные характеристики решения задачи нелинейной динамики

В экспериментах на узле суперкомпьютера решалась задача на сеточной области размером 5000x5000 по пространству и 10 отсчетов по времени. Использовался вычислительный узел суперкомпьютера «Сергей Королев» со следующими характеристиками: тип узла IBM BladeCenter HS22; процессоры 2х Intel Xeon X5560, 2.80GHz, 8MB Cache; оперативная память 12 Гб; жесткий диск 76Гб или 146Гб SAS 10K 16Mb Cache; тип системной сети InfiniBand DDR, QDR; операционная система Red Hat Enterprise Linux 5.6.

Для задачи о распространении плоской световой волны на основе численного решения уравнений Максвелла проведено распараллеливание последовательного алгоритма из работы [4]. Для этого использовалась схема конвейера PLine [2]. В ней расчетная область представляет собой цепочку ячеек, над которыми последовательно выполняется элементарная операция. Фронт вычислений распространяется слева направо. Элементарная операция не может запускаться в соседних ячейках. В рассмотренной реализации ячейка хранит 3 вектора проекций электромагнитного поля, размер сеточной области в экспериментах составлял 50^201, количество итераций численного метода -799.

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

це 2, использовался компьютер Samsung Q210 (Intel Core 2 Duo 2GHz) с установленной ОС Windows Vista Home 32 bits.

Таблица 2

Временные характеристики решения задачи о распространении плоской световой волны

Количество логиче- Время Ускоре- Эффектив-

ских процессов, шт. счета, с ние ность, %

на многоядерной настольной системе

1 1,271 1,00 50,0

2 1,1б7 1,09 54,5

3 0,S24 1,54 77,0

4 0,бб5 1,91 95,5

5 0,725 1,75 S7,5

б 0,79б 1,б0 S0,0

S 0,S01 1,59 79,5

на узле суперкомпьютера

1 0,90б 1,00 12,5

2 0,S14 1,11 13,9

4 0,473 1,92 24,0

S 0,2S2 3,21 40,1

1б 0,194 4,б7 5S,4

20 0,1S4 4,92 б1,5

24 0,1S6 4,S7 б0,9

2S 0,235 3,S5 4S,1

32 0,311 2,91 3б,4

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

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

Код системы Graphplus templet зарегистрирован Федеральным институтом промышленной собственности и открыт для некоммерческого применения (http://graphplus.ssau.ru). Авторы выражают признательность Самарскому государственному аэрокосмическому университету и администраторам суперкомпьютера «Сергей Королев» за помощь в проведении вычислительных экспериментов.

Литература

1. Востокин С.В. Визуальное моделирование в разработке параллельных алгоритмов. Метод и программные средства. LAMBERT Academic Publishing, 2011. 304 c.

2. Востокин С.В., Хайрутдинов А.Р., Литвинов В.Г. Программный комплекс параллельного программирования Graphplus templet // Вестн. СамГТУ: Сер. Физматнауки, 2011. № 4 (25). C. 146-153.

3. Курушина С.Е. Аналитическое исследование и численное моделирование контрастных диссипативных структур в по-

Количество логиче- Время Уско- Эффектив-

ских процессов, шт. счета, с рение ность, %

на многоядерной настольной системе

1 122,S5 1,00 25,0

2 71,504 1,72 43,0

3 62,S57 1,95 4S,9

4 5б,995 2,15 53,9

5 56,S69 2,1б 54,0

б 54,9S0 2,23 55,9

7 53,75б 2,2S 57,1

S 53,741 2,27 57,1

9 53,724 2,29 57,2

10 53,022 2,32 57,9

на узле суперкомпьютера

1 7б,494 1,00 12,5

2 72,730 1,05 13,1

3 34,S07 2,20 27,4

4 29,239 2,б2 32,7

5 23,2б1 3,29 41,1

б 23,б03 3,24 40,5

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

7 22,9б7 3,33 41,б

S 22,759 3,3б 42,0

9 31,221 2,45 30,б

10 52,43S 1,4б 1S,2

ле флуктуаций динамических переменных // Изв. вузов: Прикладная нелинейная динамика, 2009. № 6. C. 125-138.

4. Головашкин Д.Л., Сойфер В.А. Анализ прохождения электромагнитного излучения через дифракционную линзу // Автометрия. 1999. № 5. C. 119-121.

References

1. Vostokin S.V., Vizualnoye modelirovaniye v razrabotke pa-rallelnykh algoritmov. Metod i programmnye sredstva (Visual Si-

mulation in Parallel Algorithm Development. Method and Software Tools), LAMBERT Academic Publishing, 2011, 304 p.

2. Vostokin S.V., Khayrutdinov A.R., Litvinov V.G., Vestnik SGTU (Journ. of the Samara State Technical Univ.), 2011, no. 4 (25), pp. 146-153.

3. Kurushina S.E., Izvestiya vuzov, Applied Nonlinear Dina-mics, 2009, no. 6, pp, 125-138.

4. Golovashkin D.L., Soyfer V.A., Avtometriya, 1999, no. 5, pp. 119-121.

УДК 007.51

УПРАВЛЕНИЕ ВЗАИМОДЕЙСТВИЕМ ПЕРСОНАЛА ПРЕДПРИЯТИЯ В МНОГОАКТОРНОЙ ИНТЕГРИРОВАННОЙ ИНФОРМАЦИОННОЙ СРЕДЕ

А.В. Иващенко, к.т.н.

(Самарский государственный аэрокосмический университет им. академика С.П. Королева (национальный исследовательский университет), anton.ivashenko@gmaiLcom)

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

Ключевые слова: интегрированная информационная среда, актор, ритмичность, предприятие.

MANAGEMENT OF ENTERPRISE PERSONNEL INTERACTION IN MULTIACTOR INTEGRATED

INFORMATION ENVIRONMENT Ivaschenko A. V., Ph.D. (Samara State Aerospace University, [email protected]) Abstract. The article describes the mechanism of information management of consistent interaction of the research and development enterprise personnel in the integrated information environment on the basis of the results of interdependent interval and correlation analysis of message passing regularity of pace. It proposes the technology of analysis of the enterprise organizational structure enabling to explore the combined impact of a time factor and a human factor on the process of interaction by production and coordination of solutions by the users of integrated information environment. It presents the interaction model in multiactor integrated information environment of the enterprise enabling to implement the strategies of information management of its users' interaction with regard to the human factor, and proposes formalization of problem of information object distribution among actors in the form of allocation problem. It introduces the relevance coefficient which allows determination of consistency between information objects and interests of actors formalized in the form of tag clouds, as well as the regularity coefficient, which allows exploration of information interchange flows between the participants of decision making process. It shows that the users of the integrated information environment of the research and development enterprise comprise a social network that makes it possible to explore new properties of the enterprise personnel interaction processes in the common information area. It proposes the structure of the personnel management system at the research and development enterprise in the integrated information environment. The example is given to illustrate implementation of the described approach, which made it possible to provide operability of automated smart systems of production resources distribution management in real time mode.

Keywords: integrated information space, actor, rhythmicity, enterprise.

Современные тенденции в области автоматизации деятельности персонала научно-производ-

ственных предприятий (НПП) и интеллектуальной поддержки принятия решений предусматри-

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