Научная статья на тему 'О построении упрощенной модели библиотеки MPI в терминах сетей Петри'

О построении упрощенной модели библиотеки MPI в терминах сетей Петри Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
122
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ / ПОСЛЕДОВАТЕЛЬНЫЕ ВЗАИМОДЕЙСТВУЮЩИЕ ПРОЦЕССЫ / СЕТИ ПЕТРИ / MPI / МЕЖПРОЦЕССНОЕ ВЗАИМОДЕЙСТВИЕ / АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ / MODELING OF COMPUTING PROCESSES / COMMUNICATING SEQUENTIAL PROCESSES / PETRI NETS / INTERPROCESS COMMUNICATION / ARCHITECTURE OF COMPUTING SYSTEMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Леонтьев Денис Васильевич, Парахин Роман Валерьевич, Тарасов Георгий Витальевич, Харитонов Дмитрий Иванович

В работе предложена минимальная модель библиотеки MPI. Представлена цветная сеть Петри, описывающая минимальный набор функций MPI, необходимый для функционирования параллельной программы. Этот набор включает в себя: функцию инициализации работы библиотеки MPI_Init, после вызова которой разрешены вызовы других функций MPI; функции коллективных операций MPI_Scatter и MPI_Gather, рассчитанные на участие всех процессов во взаимодействии, принадлежащих коммуникатору MPI_COMM_WORLD; функцию двунаправленного обмена данными между вычислительными процессами MPI_SendRecv; a также функцию корректного завершения MPI_Finalize, после вызова которой функции MPI вызываться не должны. Моделирование функций выполнено с использованием событий начала и конца работы функции. Для моделирования коллективных операций использован приём, собирающий поочерёдно все процессы в состоянии после начала работы функции, затем внутренний переход моделирует выполнение взаимодействия одновременно для всех процессов, и окончательно процессы поочерёдно заканчивают выполнение коллективной операции. Представлена развертка цветной сети Петри, в которой: каждое параметризованное место заменяется множеством мест, каждому из которых назначается единственное значение параметра; каждый параметризованный переход заменяется множеством переходов, соответствующих единственной комбинации входных параметров. Новые места и переходы соединяются дугами, так чтобы исходные выражения цветной сети выполнялись.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Леонтьев Денис Васильевич, Парахин Роман Валерьевич, Тарасов Георгий Витальевич, Харитонов Дмитрий Иванович

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

ON CONSTRUCTION OF MPI LIBRARY SIMPLIFIED MODEL IN TERMS OF PETRI NETS

In the article the minimal model of the MPI library is proposed. The coloured Petri net describing the minimal set of MPI functions required for most parallel programs is presented. The set includes a function of library initialization MPI_Init, after which other MPI calls are allowed; collective operations MPI_Scatter and MPI_Gather requiring all processes in communicator group to participate in communication; function MPI_SendRecv of bidirectional data exchange between computing processes in communicator MPI_COMM_WORLD; as well as a function MPI_Finalize for the correct completion of a parallel program, after which MPI functions are not to be called. The modeling of functions is fulfilled using start and finish events of the function. The collective operation is modeled using the following approach. First, all processes are collected one by one in the special state just after start event. Second, the especial internal transition is fired to designate that all processes together start specific collective operation. After communications, processes are exited sequentially from collective operation in arbitrary order. Unfolding of the coloured Petri net to ordinary Petri net is presented. Each coloured place is replaced on a set of simple places each of which designates one value from a color. Each parameterized transition is replaced on a set of simple transitions each of which corresponds to combination of transition input parameters. New places and transitions are connected by arcs, so that the original expressions of the colored net are conserved unaltered.

Текст научной работы на тему «О построении упрощенной модели библиотеки MPI в терминах сетей Петри»

№ 10 (43)

ЛД UNI

ЛгА те)

UNIVERSUM:

ТЕХНИЧЕСКИЕ НАУКИ

октябрь, 2017 г.

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

О ПОСТРОЕНИИ УПРОЩЕННОЙ МОДЕЛИ БИБЛИОТЕКИ MPI В ТЕРМИНАХ СЕТЕЙ ПЕТРИ

Леонтьев Денис Васильевич

аспирант, Институт автоматики и процессов управления Дальневосточного отделения Российской академии наук, 690041, Россия, г. Владивосток, улица Радио, д. 5

E-mail: devozh@dvo.ru

Парахин Роман Валерьевич

инженер-программист, Институт автоматики и процессов управления Дальневосточного отделения Российской академии наук, 690041, Россия, г. Владивосток, улица Радио, д. 5

E-mail: _ fadak@dvo.ru

Тарасов Георгий Витальевич

научный сотрудник, Институт автоматики и процессов управления Дальневосточного отделения Российской академии наук, 690041, Россия, г. Владивосток, улица Радио, д. 5

E-mail: george@dvo.ru

Харитонов Дмитрий Иванович

канд. тех. наук, Институт автоматики и процессов управления Дальневосточного отделения Российской академии наук, 690041, Россия, г. Владивосток, улица Радио, д. 5

E-mail: demiurg@dvo. ru

ON CONSTRUCTION OF MPI LIBRARY SIMPLIFIED MODEL IN TERMS OF PETRI NETS

Denis Leontyev

postgraduate student, Institute of Automation and Control Processes, Far Eastern Branch Russian Academy of Sciences, 690041, Russia, Vladivostok, Radio st., 5

Roman Parakhin

software Engineer, Institute of Automation and Control Processes, Far Eastern Branch Russian Academy of Sciences,

690041, Russia, Vladivostok, Radio st., 5

Georgiy Tarasov

research Fellow, Institute of Automation and Control Processes, Far Eastern Branch Russian Academy of Sciences,

690041, Russia, Vladivostok, Radio st., 5

Dmitry Kharitonov

candidate of Engineering Sciences, Institute of Automation and Control Processes,

Far Eastern Branch Russian Academy of Sciences, 690041, Russia, Vladivostok, Radio st., 5

АННОТАЦИЯ

В работе предложена минимальная модель библиотеки MPI. Представлена цветная сеть Петри, описывающая минимальный набор функций MPI, необходимый для функционирования параллельной программы. Этот набор включает в себя: функцию инициализации работы библиотеки - MPI_Init, после вызова которой разрешены вызовы других функций MPI; функции коллективных операций MPI_Scatter и MPI_Gather, рассчитанные на участие всех процессов во взаимодействии, принадлежащих коммуникатору MPI_COMM_WORLD; функцию двунаправленного обмена данными между вычислительными процессами MPI_SendRecv; a также функцию корректного

Библиографическое описание: О построении упрощенной модели библиотеки MPI в терминах сетей Петри // Universum: Технические науки: электрон. научн. журн. Леонтьев Д.В. [и др.]. 2017. № 10(43). URL: http://7universum.com/ru/tech/archive/item/5195

jU UNIVERSUM:

№ 10 (43)_ТЕХНИЧЕСКИЕ НАУКИ_октябрь. 2017 г.

завершения - MPI_Finalize, после вызова которой функции MPI вызываться не должны. Моделирование функций выполнено с использованием событий начала и конца работы функции. Для моделирования коллективных операций использован приём, собирающий поочерёдно все процессы в состоянии после начала работы функции, затем внутренний переход моделирует выполнение взаимодействия одновременно для всех процессов, и окончательно процессы поочерёдно заканчивают выполнение коллективной операции. Представлена развертка цветной сети Петри, в которой: каждое параметризованное место заменяется множеством мест, каждому из которых назначается единственное значение параметра; каждый параметризованный переход заменяется множеством переходов, соответствующих единственной комбинации входных параметров. Новые места и переходы соединяются дугами, так чтобы исходные выражения цветной сети выполнялись.

ABSTRACT

In the article the minimal model of the MPI library is proposed. The coloured Petri net describing the minimal set of MPI functions required for most parallel programs is presented. The set includes a function of library initialization MPI_Init, after which other MPI calls are allowed; collective operations MPI_Scatter and MPI_Gather requiring all processes in communicator group to participate in communication; function MPI_SendRecv of bidirectional data exchange between computing processes in communicator MPI_COMM_WORLD; as well as a function MPI_Finalize for the correct completion of a parallel program, after which MPI functions are not to be called. The modeling of functions is fulfilled using start and finish events of the function. The collective operation is modeled using the following approach. First, all processes are collected one by one in the special state just after start event. Second, the especial internal transition is fired to designate that all processes together start specific collective operation. After communications, processes are exited sequentially from collective operation in arbitrary order. Unfolding of the coloured Petri net to ordinary Petri net is presented. Each coloured place is replaced on a set of simple places each of which designates one value from a color. Each parameterized transition is replaced on a set of simple transitions each of which corresponds to combination of transition input parameters. New places and transitions are connected by arcs, so that the original expressions of the colored net are conserved unaltered.

Ключевые слова: моделирование вычислительных процессов, последовательные взаимодействующие процессы, сети Петри, MPI, межпроцессное взаимодействие, архитектура вычислительных систем.

Keywords: modeling of computing processes, communicating sequential processes, Petri nets, MPI, interprocess communication, architecture of computing systems.

Введение

С момента появления многоядерных и мультиядер-ных архитектур наблюдается стремительный рост производительности вычислительных систем. В настоящее время уже преодолен барьер в 1 PFLOPS (1015 операций в секунду), ведутся исследования по созданию «экза-флопной» машины (1018 операций в секунду).

Однако, параллельное программирование остаётся настолько сложным процессом, что больше напоминает искусство, чем техническую работу. При переходе от последовательного алгоритма к параллельному для получения эффективного параллельного кода зачастую необходимо полностью изменить логику работы последовательного алгоритма. При этом в параллельном коде чрезвычайно тяжело найти ошибки с помощью отладки. Среди всего многообразия существующих программ только считанные единицы прошли формальную верификацию, доказывающую их корректность. В 2003 году Ч.Э. Хоар отнес проблему создания верифицирующего компилятора к разряду крупнейших нерешенных научно-технических задач современности (Grand Challenge) [5].

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

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

В рамках данной статьи рассмотрено построение модели протокола взаимодействия процессов MPI в терминах цветных и простых сетей Петри. Создание такой модели позволит анализировать MPI-программу по частям, отдельно рассматривать последовательные локальные вычисления, производимые процессами, и отдельно рассматривать парные и групповые взаимодействия процессов.

Минимальная модель библиотеки MPI

MPI - наиболее распространенный стандарт обмена данными между вычислительными процессами в параллельном программировании. Этот стандарт активно развивается на протяжении последних двадцати пяти лет. 21 сентября 2012 была опубликована третья официальная версия стандарта. Существует

№ 10 (43)

ЛД1 Луч

UNIVERSUM:

ТЕХНИЧЕСКИЕ НАУКИ

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

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

октябрь, 2017 г.

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

На рисунке 1 представлена цветная сеть Петри, описывающая минимальный набор функций MPI, необходимый для функционирования параллельной программы. Этот набор включает в себя функцию инициализации работы библиотеки - MPI_Init, после вызова которой разрешены вызовы других функций MPI. Функцию корректного завершения - MPI_Finalize, после вызова которой функции MPI вызываться не должны. Функции коллективных операций MPI_Scatter (функция рассылает данные из буфера определенного процесса всем процессам) и MPI_Gather (функция осуществляет сбор данных со всех процессов в буфере определенного процесса), рассчитанные на участие всех процессов во взаимодействии, принадлежащих коммуникатору MPI_COMM_WORLD. Коммуникатор - это объект, представляющий собой идентификатор группы запущенных программой параллельных процессов, которые могут обмениваться сообщениями. А также функцию двунаправленного обмена данными между вычислительными процессами MPI_SendRecv. Моделирование всех функций выполнено с использованием двух событий - начала и конца работы функции. Для моделирования коллективных операций использован приём, собирающий поочерёдно все процессы в состоянии после начала работы функции, затем внутренний переход, скрывающий подробности реализации, моделирует выполнение взаимодействия одновременно для всех процессов, и окончательно процессы поочерёдно заканчивают выполнение коллективной операции.

Рисунок 1. Минимальная модель MPI в терминах цветных сетей Петри

№ 10 (43)

ЛД1 Луч

UNIVERSUM:

ТЕХНИЧЕСКИЕ НАУКИ

октябрь, 2017 г.

Цветная сеть Петри, описывающая минимальную модель MPI, имеет менее тридцати мест и переходов, из которых десять мест и переходов содержат разметку с использованием параметров, соответствующих rank-у (номеру процесса в коммуникаторе) вычислительных процессов. Для анализа корректности взаимодействий в параллельной программе необходимо выполнить развёртку этой сети. Для этого была разработана автоматическая процедура развертки цветной сети. При этом каждое параметризованное место заменяется множеством мест, каждому из которых назначается единственное значение параметра. Каждый параметризованный переход заменяется множеством переходов, соответствующих единственной комбинации входных параметров. Новые места и переходы соединяются дугами, так чтобы исходные выражения цветной сети выполнялись. При такой развертке количество элементов исходной сети значительно увеличивается. На рисунке 2 представлена развертка минимальной сети для двух вычислительных процессов, в которой общее количество мест и переходов приближается к сорока. Для трех процессов количество мест и переходов будет порядка 55, а для четырёх - порядка 75. Фактически увеличение количества процессов показывает, что при анализе сетей желательно использовать привязку результатов к исходной цветной сети, так как сети с

большим количеством элементов невозможно изобразить в читабельном виде.

Заключение

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

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

№ 10 (43)

UNIVERSUM:

ТЕХНИЧЕСКИЕ НАУКИ

октябрь, 2017 г.

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

1. Голенков Е.А., Соколов А.С., "Метод автоматического построения модели параллельной программы в терминах сетей Петри" // Вычислительные методы и программирование. - 2005. - №63. - С. 77-82.

2. Тарасов Г.В., Харитонов Д.И., Голенков Е.А., "Об одном представлении функции в модели императивной программы, заданной сетями Петри" // Моделирование и анализ информационных систем. - 2011. - Т. 18, -№ 2. - С. 18-38

3. Харитонов Д.И. Раздельная верификация объектно-ориентированных программ с построением протокола С++ класса в терминах сетей Петри. // Моделирование и анализ информационных систем. - 2009. -Т. 16, - №1. - С. 92-112.

4. Denaro G., M. Pezz'e, "Petri nets and software engineering" // Lectures on Concurrency and Petri Nets -Springer-Verlag. 2004. - P. 439-466.

5. Hoare, C.A.R. The Verifying Compiler: A Grand Challenge for Computing Research // Journal of the ACM - 2003. Vol. 50. No. 1. - P. 63-69.

6. Kharitonov D., Tarasov G., "Modeling function calls in program control flow in terms of Petri Nets" // ACSIJ Advances in Computer Science: an International Journal. - 2014. - №12. - С. 82-91.

7. Krone, J., Ogden, W., Sitaraman, M., Weide, B. Refocusing the Verifying Compiler Grand Challenge // Clemson University, School of Computing 05.2008. [Электронный ресурс] Режим доступа: URL: https://www.cs.clem-son.edu/resolve/research/reports/RSRG-08-01.pdf. (дата обращения: 11.10.2017).

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