Научная статья на тему 'О распараллеливании вычислений при построении системы имитационного моделирования'

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

CC BY
77
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / PARALLEL COMPUTING / ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ / SIMULATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Юдин Е.Б.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Юдин Е.Б.

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

ABOUT PARALLEL COMPUTINGIN CONSTRUCTING SIMULATION SYSTEM

The aspects of the design of simulation system with the use of parallel and distributed computing are considered.

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

УДК -519.7

Е.Б. Юдин, E.V. Yndin, udinev@asoiu.com

Омский государственный технический университет, г. Омск, Россия Omsk State Technical University. Omsk. Russia

О РАСПАРАЛЛЕЛИВАНИИ ВЫЧИСЛЕНИЙ ПРИ ПОСТРОЕНИИ СИСТЕМЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

ABOUT PARALLEL COMPUTING IN CONSTRUCTING SIMULATION SYSTEM

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

Tlie aspects of the des um of simulation system with the use of parallel and distributed computing aie considered.

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

Keywords: parallel computing, simulation

Введенне

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

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

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

1. Проблема балансировки нагрузки

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

247

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

Выделяют следующие методы декомпозиции [2, 3]:

- статистическая декомпозиция (выполняется программно, пользователем системы в соответствии с разработанным им эмпирическим алгоритмом);

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

- блочно-цикличная декомпозиция (заключается в разбиении задачи на большее количество блоков, чем имеется рабочих потоков, после чего рабочие блоки присваиваются процессам циклически гак, что каждому процессу предоставляется несколько не соседствующих друг с другом блоков);

- цикличная декомпозиция (крайний случай блочно-цикличного, данные не объединяются в блоки, а передаются на обработку в поток по отдельности);

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

Пример использования блочной декомпозиции реализован в работе [4]. Предложенный в [4] граф соседства разбивался на подграфы, принадлежащие тому или иному процессу (Р1, Р2, РЗ. Р4), в соответствии с принадлежностью к гому или иной части плоскости, на которой находятся вершины графа, рис. 1.

Рис. I. Генерация графа соседства, а) начальная конфигурация: 6) промежуточная конфигурация; в) конечное состояние

Использованная декомпозиция позволяет получить выигрыш в производительности как при анализе, гак при генерации графов данного типа.

Как можно видеть на рис. 2 с увеличением задействованных процессоров достигается существенное уменьшение времени.

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

Число процессоров

Рис. 2. Зависимость времени генерации графа от числа процессоров вычислительного кластера Омского государственного технического университета

24Е

2. Оргаптацня молельного времени

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

В работах[5-8] выделяют консервативный и оптимистический подходы к моделированию времени в системах имитационного моделирования. Наиболее эффективным методом для дискретно-событийного имитационного моделирования является консервативный метод с использованием «забегания вперед» по следующей схеме:

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

- каждый поток выполняет свою задачу;

- поток останавливается на барьере в ожидании своих потоков;

- как только все потоки закончили свои задачи модельное время продвигается вперед.

3. Новые возможности языка Java для параллельных вычислений

На данный момент язык Java является одним из самых развитых языков программирования поддерживающих распределенные вычисления (среди которых широкое распространения получила, включенная в стандартную библиотеку технология RML а также широко известная технология MPI. реализации которых для Java получили названия MP J Express и mpiJava) Для реализации параллельного программирования в Java реализованы методы для параллельной работы с коллекциями (причем методы параллельных вычислений включены в сам язык) и широкая библиотека классов (fork-join фреймворк), реализующая известные шаблоны проектирования, такие как WoikerThread, HueadPool. Promise, Guarded Blocks и многие другие.

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

В качестве базового метода распределения нагрузки при разработки системы имитационного моделирования выбор сделанв пользу статистического и блочного методов. Модельное время решено расчитывать в соответсгвови с консервативном подходом с применение забеганий вперед на один шаг. Этот подход позволяет реализовать дискретную модель с заданным шагом времени и естественными точками синхронизации потоков в конце каждого шага. В качестве языка программирования был выбран язык программирования JAVA, который позволяет эффективно распараллеливать задачи как при использовании общей памяти (в последних версиях появились передовые средства реализованные в стандартной библиотеке), так и с раздельной памятью (технология MPI и RMI). Базовой версией языка выбрана версия Java 3, элементы разработки многопогочных приложений которой встроен в синтаксис язык, позволяя вести разработку на высоком уровне абстракции Разрабатываемая система будет расширяемой, подключаемыми модулями для эффективного использования технологий распределенных вычислений.

* Работа выполнена при поддержке гранта РФФИ 14-01-31551 мол-а.

Библиографический список

1 Гергель, В. П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем : учеб. - М : Изд-во Моек ун-та, 2010. - 544 с. - (Серия «Суперкомпьютерное образование»).

2. Programming Using MPI l.X Implementing Soluiton for Partial differential Equations -Finite difference & Finite Element Method computation algorithms [Электронный ресурс]. - Режим доступа : http : // www cdac tn/H'I mL /events/beta test'arehives/pTornr.ore 2008/mpi lx promc ore-2008/partial-di ff-eqns-s olvers-mpi html

3. Introduction to Parallel Computing'v 2nd Edition / Ananth Grama [at alj — Hardback. 2003. - 656 p.

4. 'Задорожный, В Н. Статистически однородные случайные графы: определение, генерация, применение / В. Н. Задорожный. Е. Б. Юдин // Омский научный вестник. - 2009. — №3(83).-С. 7-13.

5. Око льнншников. В. В. Разработка средств распределенного имитационного моделирования для многопроцессорных вычислительных систем : дие. ... д-ра техн. наук : 05.13.18 / В В. Окольнишников. - Новосибирск, 2006. - 227 с.

6. 'Замятина, Е. Б. Современные теории имитационного моделирования URL / Е. Б. Замятина. - [Электронный ресурс]. - Режим доступа hHp://window.edn.ru/resource /717/41717/files/imit_mod_lectpdf

7. Олзоева, С. И. Распределенное моделирование в задачах разработки АСУ / С. И. Олзоева. - Улан-Удэ : Изд-во ВСГГУ, 2005. -219 с.

8 Baneijee, U. Automatic program parallelizatioo / U Banerjee. R. Eigenmann, A. Nicolau. andD. Padua // Proceedings of the IEEE. - 1993. -81(2). - P. 211-243.

250

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