Научная статья на тему 'Технология поддержки агент-ориентированного моделирования для суперкомпьютеров'

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

CC BY
505
183
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АГЕНТ-ОРИЕНТИРОВАННЫЕ МОДЕЛИ / DEMOGRAPHIC MODELS / СУПЕРКОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ / SUPERCOMPUTING TECHNOLOGY / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / PARALLEL COMPUTING / ДЕМОГРАФИЧЕСКИЕ МОДЕЛИ / AGENT-BASED MODEL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Макаров В.Л., Бахтизин А.Р., Сушко Е.Д.

Тема. В статье рассматривается специализированное программное обеспечение для технической реализации агентных моделей на суперкомпьютерах, а также описывается разработанная технология поддержки агент-ориентированного моделирования (АОМ) для суперкомпьютеров STARS (Supercomputer Technology for Agent-oRiented Simulation). Технология апробирована на примере мультиагентной демографической модели региона. Цели. Построение мультиагентной демографической модели условного региона, обладающей интерфейсом для демонстрации пользователю происходящих во времени изменений основных демографических характеристик популяции агентов. Разработка методологии эффективного отображения счетного ядра мультиагентной системы на архитектуру современного суперкомпьютера. Методология. Использована методология межузлового взаимодействия при помощи технологии активных сообщений, позволившая существенно повысить производительность мультиагентных моделей. Результаты. Разработанная технология STARS позволяет легко реализовать как интерактивное моделирование, так и интерактивную визуализацию процесса моделирования в масштабе расчетного времени. Пока это возможно лишь в случае монопольного доступа к суперкомпьютеру (например, если будет использоваться компактный персональный суперкомпьютер). Для проведения масштабных экспериментов с более сложными агентами потребуется уже более вместительный и производительный суперкомпьютер. Выводы. Возрастающий интерес крупнейших игроков IT-рынка (Microsoft, Wolfram, ESRI и др.) к АОМ доказывает перспективность этого инструмента и его большое будущее. Экспоненциальный рост общего объема данных, связанных с жизнедеятельностью людей, а также необходимость в построении аналитических систем добычи данных нового поколения, необходимых для прогнозирования социальных явлений и событий, обусловливают применение суперкомпьютерных технологий.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Макаров В.Л., Бахтизин А.Р., Сушко Е.Д.

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

The technology to support agent-based modeling for supercomputers

Importance The article discusses specialized software to implement agent-based models in supercomputers, and describes Supercomputer Technology for Agent-oRiented Simulation STARS. Objectives The research sets up a multi-agent demographic model, which has the interface to demonstrate changes in the main demographic indicators of the region's population. We devise a methodology to effectively reflect the computing core of the multi-agent system in relation to the architecture of modern supercomputer. Methods We apply the internode communication technology through the active messaging technology that allows to significantly increase the productivity of multi-agent models. Results STARS facilitates the implementation of online modeling and online visualization of the simulation process within the estimated time. Currently, it is possible only if there is a monopolistic access to supercomputer. To make large-scale experiments with more complicated agents, a more productive and data intensive supercomputer will be needed. Conclusions and Relevance As the largest IT-market actors (Microsoft, Wolfram, ESRI, etc.) got more interested in AOM, the instrument proves to have good prospects and promising future. Supercomputing technologies and their application turn out to be reasonable and practicable, considering exponential growth in total data volume and the need to build analytical systems for obtaining new generation data required to predict social phenomena.

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

ISSN 2311-875X (Online) ISSN 2073-2872 (Print)

Национальные интересы

ТЕХНОЛОГИЯ ПОДДЕРЖКИ АГЕНТ-ОРИЕНТИРОВАННОГО МОДЕЛИРОВАНИЯ ДЛЯ СУПЕРКОМПЬЮТЕРОВ*

Валерий Леонидович МАКАРОВ^, Альберт Рауфович БАХТИЗИНЬ, Елена Давидовна СУШКОС

a доктор физико-математических наук, академик РАН, директор Центрального экономико-математического института РАН,

Москва, Российская Федерация

makarov@cemi.rssi.ru

b доктор экономических наук, заведующий лабораторией, Центральный экономико-математический институт РАН, Москва, Российская Федерация albert. bakhtizin@gmail .com

c кандидат экономических наук, ведущий научный сотрудник, Центральный экономико-математический институт РАН,

Москва, Российская Федерация

sushko_e@mail.ru

• Ответственный автор

История статьи:

Принята 16.09.2015 Одобрена 28.09.2015

УДК 330.47; 004.94 JEL: C63, C88

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

Аннотация

Тема. В статье рассматривается специализированное программное обеспечение для технической реализации агентных моделей на суперкомпьютерах, а также описывается разработанная технология поддержки агент-ориентированного моделирования (АОМ) для суперкомпьютеров - STARS (Supercomputer Technology for Agent-oRiented Simulation). Технология апробирована на примере мультиагентной демографической модели региона. Цели. Построение мультиагентной демографической модели условного региона, обладающей интерфейсом для демонстрации пользователю происходящих во времени изменений основных демографических характеристик популяции агентов. Разработка методологии эффективного отображения счетного ядра мультиагентной системы на архитектуру современного суперкомпьютера.

Методология. Использована методология межузлового взаимодействия при помощи технологии активных сообщений, позволившая существенно повысить производительность мультиагентных моделей.

Результаты. Разработанная технология STARS позволяет легко реализовать как интерактивное моделирование, так и интерактивную визуализацию процесса моделирования в масштабе расчетного времени. Пока это возможно лишь в случае монопольного доступа к суперкомпьютеру (например, если будет использоваться компактный персональный суперкомпьютер). Для проведения масштабных экспериментов с более сложными агентами потребуется уже более вместительный и производительный суперкомпьютер. Выводы. Возрастающий интерес крупнейших игроков IT-рынка (Microsoft, Wolfram, ESRI и др.) к АОМ доказывает перспективность этого инструмента и его большое будущее. Экспоненциальный рост общего объема данных, связанных с жизнедеятельностью людей, а также необходимость в построении аналитических систем добычи данных нового поколения, необходимых для прогнозирования социальных явлений и событий, обусловливают применение суперкомпьютерных технологий.

© Издательский дом ФИНАНСЫ и КРЕДИТ, 2016

Введение

Агент-ориентированные модели (agent based models) (далее - АОМ) - новое средство получения знания, в последнее время все чаще используемое в общественных науках (в том числе экономических). Основная идея, лежащая в основе АОМ, заключается в построении

«вычислительного инструмента»

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

* Работа выполнена при финансовой поддержке Российского научного фонда, проект № 14-18-01968.

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

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

компьютерных симуляций. Эти компьютерные симуляции тесно взаимосвязаны со такими понятиями, как «сложная система», «метод Монте-Карло», «вычислительная социология», «система с множеством агентов» и «эволюционное программирование» [1]. С технологической точки зрения агент-ориентированный подход является частным случаем более общей парадигмы программирования - объектно-ориентированного программирования [2].

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

суперкомпьютерах агентных моделей с огромным (до 6,5 млрд ед.) числом агентов1 [3-6]. Есть даже опыт высокопроизводительных вычислений агентных моделей с использованием графических процессоров2.

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

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

Данные факторы приводят к тому, что для проведения масштабных экспериментов используются суперкомпьютерные версии

1 Deissenberg C., van der Hoog S., Herbert D. EURACE: A Massively Parallel Agent-Based Model of the European Economy / Document de Travail No. 2008-39, 24 Juin 2008; Parker J. A Flexible, Large-Scale, Distributed Agent Based Epidemic Model. Center on Social and Economic Dynamics. Working Paper. 2007. No. 52.

2 Берилло А. NVIDIA CUDA - неграфические вычисления на графических процессорах // Информационный ресурс сети интернет IXBT.com. URL: http://ixbt.com/video3/cuda-1.shtml

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

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

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

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

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

Для АОМ разработано более 100 различных программных сред с различными

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

Среда проектирования агентных моделей для суперкомпьютеров - RepastHPC. Отдельного внимания заслуживает программное обеспечение, разработанное для проектирования АОМ в целях последующего запуска на суперкомпьютерах, Repast for High Performance Computing (RepastHPC). Данный пакет реализован с использованием языка C++ и MPI - программного интерфейса для обмена сообщениями между процессами, выполняющими задачу в параллельном режиме, а также библиотеки Boost, расширяющей C++.

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

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

В RepastHPC агенты распределяются между процессами, и каждый процесс связан с агентом, являющимся локальным по отношению к данному процессу. В свою очередь, агент локален к процессу, выполняющему программный код, описывающий поведение данного агента. При этом копии остальных - нелокальных - агентов могут присутствовать в любом процессе, что позволяет агентам всей модели взаимодействовать с этими копиями. К примеру, пусть пользователь в своей модели, предполагающей параллельные вычисления, использует два процесса - P1 и P2, каждый из которых создает определенное количество агентов и имеет собственный планировщик выполнения программных инструкций. Агенты, поведение которых рассчитывается на процессе P1, являются локальными по отношению к данному процессу, и только в рамках данного процесса программный код может изменить их состояние (аналогично и для процесса P2). Предположим, процесс P1 запрашивает копию агента A2 из процесса P2. Агент A2 не является локальным по отношению к процессу P1, и соответственно программный код, выполняемый в рамках процесса P1, не может изменить состояние агента A2. При этом агенты, реализуемые в рамках процесса P1, при необходимости могут запросить состояние агента A2, но копия A2 останется неизменной. Изменение оригинального A2 возможно только в рамках процесса P2, но в этом случае RepastHPC синхронизирует изменения состояния агента

3

между всеми процессами .

3 Более подробно с данным ПО можно познакомиться в руководстве пользователя (Collier, 2012). URL:

Pandora - высокопроизводительное программное обеспечение для построения агентных моделей. В суперкомпьютерном центре Барселоны (Barcelona Supercomputing Centre) разработано высокопроизводительное программное обеспечение для построения крупномасштабных АОМ - Пандора (Pandora). Также Пандора обеспечивает полную поддержку

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

Результат каждой симуляции хранится в иерархическом формате данных (Hierarchical Data Format, HDF), предназначенном для хранения большого количества цифровой информации. Этот формат поддерживается большинством ГИС.

Пандора дополняется программой Кассандра (Cassandra), позволяющей визуализировать процесс выполнения симуляции с использованием 2D и 3D графики.

Разработчики предлагают использовать Пандору для следующих исследовательских направлений:

• социальных явлений, анализа социальных сетей и межличностных взаимодействий;

• сложных социально-экономических систем;

• миграционных процессов и др.

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

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

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

http://repast. sourceforge.net/repast_hpc.html

нагрузки при моделировании древних сообществ, в которых не было средств телекоммуникации.

Синхронизация в Пандоре осуществляется с помощью интерфейса MPI. Кроме того, директивы OpenMP используются для распределения вычислительной нагрузки по различным процессорам внутри узла. При анализе разных пакетов для разработки агентных моделей было выявлено, что наиболее ресурсоемкими участками кода являются моменты сбора информации и решения о порядке выполнения программных инструкций на следующем шаге. В Пандоре для одного процессора выполняемый шаг модели содержит в себе три составляющих метода. В рамках первого из них (updateKnowledge) агенты собирают информацию, но не могут изменять параметры среды и состояния других агентов. Второй метод (SelectAction) позволяет агентам принимать решения и генерировать последовательность дальнейших действий, но по-прежнему не разрешает проводить какие-либо изменения. Наконец, во время третьего метода (updateState) агенты меняют свое состояние. В случае использования множества процессоров Пандора равномерно распараллеливает между ними объем вычислений первых двух методов (наиболее ресурсоемких). Что касается процедур третьего метода, то они выполняются последовательно, с тем чтобы избежать возможных конфликтов [8].

Среда построения агентных моделей ABM++. В АОМ EpiSims, разработанной исследователями из Института биоинформатики Вирджинии (Virginia Bioinformatics Institute), рассматриваются как перемещения агентов, так и их контакты в рамках среды, максимально приближенной к реальности и содержащей дороги, здания и прочие инфраструктурные объекты [9]. Для построения модели потребовался большой массив данных, включающий информацию о здоровье отдельных людей, их возрасте, доходе, этнической принадлежности и т.д.

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

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

ABM++, первая версия которого появилась в 2009 г., представляет собой результат модернизации инструмента, разработанного в 1990-2005 гг. в Лос-Аламосской национальной лаборатории в процессе построения крупномасштабных АОМ (EpiSims, TRANSIMS, MobiCom).

Межпроцессорные связи между вычислительными узлами в АОМ часто требуют синхронизации происходящих в модели событий. ABM++ позволяет разрабатывать модели, отвечающие этому требованию. К примеру, в социальных моделях агенты часто перемещаются между различными точками пространства (работой, домом и т.д.), а на программном уровне этому соответствует смена узла кластера, и здесь важно, чтобы модельное время принимающего узла было синхронизировано с временем узла, который агент только что покинул.

Также в ABM++ реализована библиотека MPIToolbox, которая соединяет интерфейс C++ API (Application Programming Interface) и Message Passing Interface (MPI) суперкомпьютера и ускоряет передачу данных между узлами кластеров. В качестве интегрированной среды разработки рекомендуется пакет Eclipse с плагином для поддержки C и C++, а также с плагином PTP (Parallel Tools Platform), обеспечивающим разработку и интеграцию приложений для параллельных компьютерных архитектур.

SWAGES - расширяемая распределенная среда для крупномасштабного агент-

ориентированного моделирования. Ученые из Университета Тафтса (Медфорд, Массачусетс, США) представили пакет SWAGES - среду для разработки распределенных агент-ориентированных моделей с возможностью автоматиче с кого динамиче ского

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

общедоступных средствах обработки данных (типа R или Scilab).

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

Агенты могут быть описаны с использованием любого программного языка, поддерживаемого Poplog (к примеру, Pop11, Prolog, ML, Scheme, C-Lisp). Кроме того, для разработчика предусмотрена возможность вызова внешних функций, написанных на других языках программирования, посредством специального интерфейса. SWAGES содержит встроенные инструменты для статистического анализа, а также библиотеки для добычи данных (в различных форматах, включая HTML, TeX, простой текст).

Разработчики SWAGES позиционируют свой продукт как проработанную среду для построения крупномасштабных АОМ, успешно

использованную как минимум для нескольких

4

десятков научно-исследовательских проектов .

Число специализированных программных продуктов для реализации агентных моделей на суперкомпьютерах постоянно растет. Помимо описанных выше, следует упомянуть также MUSE, CyberGIS и др. В связи с этим появление на этом поле больших игроков (как, к примеру, Microsoft), по сути, лишь вопрос времени.

Адаптация моделей для запуска на суперкомпьютере

Учет специфики среды исполнения современных суперкомпьютеров. Опишем разработанную технологию поддержки АОМ для суперкомпьютеров STARS (Supercomputer Technology for Agent-oRiented Simulation) на примере реализованных авторами в среде AnyLogic5 двух демографических моделей,

4 Более подробно про SWAGES можно узнать на сайте лаборатории взаимодействия между человеком и роботом (факультет информатики Университета Тафтса). URL: http://hrilab.org

5 AnyLogic - инструмент имитационного моделирования,

который поддерживает все подходы к созданию имитационных моделей: процессно-ориентированный

поскольку для моделирования именно демографических процессов агент-

ориентированный подход признается наиболее продуктивным6 [10]. Важно отметить, что кроме общей схемы распараллеливания, которая определяет способ преобразования исходного кода модели, необходимо, чтобы модель удовлетворяла базовым требованиям современных

суперкомпьютеров, для которых де-факто стандартом является ориентация на MPI. К сожалению, рассчитывать ни на общую память у узлов суперкомпьютера, ни на поддержку стандарта OpenMP, в чем авторы убедились еще несколько лет назад, не приходится. Также не приходится рассчитывать ни на установленную на суперкомпьютер среду моделирования AnyLogic, ни на прочие возможности типа библиотек для работы с файлами в формате MS Excel. Нежелательным является и использование стандартной среды исполнения Java, поскольку она редко присутствует на суперкомпьютере.

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

Учет имеющегося опыта и анализ новых программных технологий. Уже опробованная авторами при распараллеливании

демографической модели России в 2011 г. библиотека для многоагентного моделирования ADEVS показала себя достаточно хорошо [11]. В последних версиях ADEVS имеется также некоторая поддержка Java, что также является позитивным моментом. Однако разработчики ADEVS до сих пор не реализовали параллельную работу на суперкомпьютере (за исключением технологии OpenMP для мультипроцессоров, что в предыдущей нашей работе потребовало значительных доработок в части поддержки MPI).

Также при распараллеливании предыдущей, достаточно простой модели, она была переписана на C++ целиком, что является избыточным: пред- и

(дискретно-событийный), системно динамический и агентный, а также любую их комбинацию. Более подробно см. URL: http://anylogic.ru

6 Stillwell J., Clarke M. Population Dynamics and Projection Methods, Understanding Population Trends and Processes. 2011. Vol. 4. 222. doi 10.1007/978-90-481-8930-4; Wu B.M., Birkin M.H. Agent-Based Extensions to a Spatial Microsimulation Model of Demographic Change. In: Agent-Based Models of Geographical Systems. 2012. P. 347-360. doi 10.1007/978-90-481-8927-4-16

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

Анализ новейших программных технологий показал, что в последнее время активно развиваются встраиваемые средства для исполнения Java-программ, которые используют так называемую AOT (Ahead-Of-Time) компиляцию. При этом результатом работы AOT-компилятора является обычный автономный исполняемый модуль, содержащий машинный код для целевой платформы. Эксперименты с одним из подобных продуктов - AOT-компилятором Avian -позволили сделать следующие выводы:

• Avian позволяет получить автономный исполняемый модуль в виде MPI-приложения для суперкомпьютера, при этом на C++ легко реализуется произвольный дополнительный код, включая инициализацию и привязку к коммуникационной библиотеке MPI;

• скорость работы полученного программного модуля (к примеру, на классической игре «Жизнь») приблизительно соответствует скорости работы ADEVS.

Это позволило переложить значительную часть работы на AOT-компилятор и реализовать на C++ только самое необходимое, оставив для ADEVS нишу поддержки ускоренных стадий со сложным межагентным взаимодействием.

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

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

На базе активных сообщений для встраиваемой среды исполнения Avian+MPI был реализован программный каркас, в котором выделенный (первый по счету) узел кластера выдает задания (так называемые стадии расчета) и собирает результаты со всех участвующих (включая его самого) в расчете узлов. Одному шагу моделирования (году в терминологии текущей модели) может соответствовать несколько стадий, так как при межузловом межагентном взаимодействии может возникнуть потребность в согласовании определенных свойств у агентов (например, согласование партнерами желаемого количества детей).

Для формата ALP, используемого средой AnyLogic для хранения описания моделей, был разработан конвертер, в котором для каждой секции входного файла реализован обработчик, собирающий существенную информацию о модели и генерирующий Java-классы. Все эти обработчики используются конвертером с учетом программной специфики модели (то есть набора правил трансляции). Например, инициализация поля главного класса модели Population обрабатывается так, чтобы получить количество агентов из окружения, что позволяет задавать это значение в виде опций командной строки.

Эмуляция необходимых функций AnyLogic (взаимодействия, генераторы случайных чисел используемых вероятностные распределения, чтение и запись Excel-файлов) была реализована в виде отдельного программного пакета RT (RunTime).

C++ код для работы с MPI и низкоуровневыми примитивами (сравнительно простыми

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

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

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

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

2. Входной Excel-файл с входными параметрами модели преобразуется в исходный текст на языке Java (также объемом в несколько тысяч строк), чтобы обеспечить оперативный доступ к параметрам модели на каждом узле суперкомпьютера. Иными словами, внешний набор параметров модели становится составной частью исполняемого модуля для суперкомпьютера.

3. Сформированные программные модули совместно с разработанным кодом эмуляции используемых функций среды AnyLogic компилируются, и происходит их компоновка в машинный код для целевого суперкомпьютера. Исполняемый модуль при этом является полностью автономным, и при запуске принимает лишь несколько ключевых параметров в командной строке. Например, запуск модели с 1 000 000 агентов на 12 вычислительных узлах производится следующей командой:

$ mpirun -np 12 -x Population=1000000 rt.Main.

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

Исходная модель. На основе агентного подхода и с использованием реальных статистических данных в ЦЭМИ РАН были разработаны две мультиагентные демографические модели, посвященные рассмотрению такого известного явления, как демографический переход и связанных с ним структурных изменений в обществе [12]. Модели различаются уровнем детализации при имитации репродуктивного поведения людей. При этом направление усложнения поведения агентов было выбрано, в

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

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

характеристик популяции агентов условного региона.

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

В моделях на основе использования метода передвижки возрастов [13, 14] и вероятностных механизмов имитируются процессы естественного движения населения региона - смертность и рождаемость. Вымирание агентов происходит в соответствии с коэффициентами смертности, дифференцированными по полу и возрасту, но одинаковыми для всей популяции. Создание же новых агентов (рождение детей) в модели является результатом действий агентов. Вначале агенты-люди взаимодействуют между собой в процессе образования супружеских пар, при котором происходит согласование партнерами числа желаемых общих детей. Затем «семейные пары» договариваются о времени рождения каждого ребенка, и выбор этот зависит от их внутренних установок, связанных с принадлежностью к тому или иному типу. Особенности данных процессов и

репродуктивные стратегии женщин современной России хорошо представлены в работах [15, 16].

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

- общая численность популяции агентов -100 000;

- доля агентов традиционного типа - 10%;

- показатели смертности для агентов двух типов совпадают с данными по России в целом;

- суммарный коэффициент рождаемости для агентов-женщин традиционного типа - 3,0, а для современного типа - 1,4;

- минимальное число желаемых детей для агентов традиционного типа - 2, а максимальное - 10; для агентов современного типа - 0 и 3 соответственно;

- базовый год - 2007;

- период симуляции - 20 шагов (лет);

- коэффициенты смертности и рождаемости остаются неизменными на протяжении всего периода.

Результаты экспериментов представлены в табл. 1 и 2.

Анализ результатов показал, что модели адекватно имитируют такие наблюдаемые в реальной жизни процессы, как снижение общей численности населения, а также его старение. Так, данные табл. 1 показывают, что численность агентов моложе 50 лет снизилась к концу периода на 15%, а численность агентов старше 80 лет - выросла на 46,3%. При этом доли этих групп агентов в общей численности популяции также изменились: доля молодых агентов снизилась на 9,5 п.п., а доля пожилых - возросла на 2 п.п.

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

http://fin-izdat.r

табл. 2, из данных которой следует, что доля агентов традиционного типа заметно различается в разных возрастных группах - она тем выше, чем группа моложе. Более того, при общем небольшом росте доли агентов традиционного типа скорость роста этой доли также тем выше, чем моложе агенты. Так, если в среднем по популяции доля агентов традиционного типа за 20 лет эксперимента выросла на 3,2%, то в группе самых младших агентов (от 0 до 14 лет) эта доля выросла на 7,7%, а в следующей возрастной группе агентов (от 15 до 24 лет) - на 5,8%.

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

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

Сравнительные результаты скорости работы моделей. Для первых экспериментов с параллельной версией модели, осуществленной группой сотрудников МГУ (В.А. Рогановым и В.А. Борисовым под руководством В.А. Васенина), использовался фрагмент лабораторного вычислительного кластера с 12 счетными ядрами и общим объемом оперативной памяти 96 Гб. При такой конфигурации в оперативной памяти без труда помещаются 60 млн агентов, что позволяет провести моделирование динамики роста населения в масштабах небольшой страны. Параллельная версия также испытывалась на многоядерном процессоре. Результаты замеров времени работы оригинальной и параллельной версий модели представлены в табл. 3-5.

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

Таким образом, для моделирования динамики развития населения России или Европы достаточно небольшого В^е-сервера, при этом время одного расчета не превысит нескольких

эигпа1/пайопа1/ 11

минут. Для проведения более масштабных экспериментов с использованием разработанной модели потребуется уже более вместительный и производительный суперкомпьютер.

Выводы и перспективы развития разработанной технологии

Главным положительным моментом

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

Данный подход является расширяемым в части используемого целевого языка и программно-аппаратной платформы. Кроме уже успешно опробованных платформ исполнения Avain и ADEVS можно разработать и другие, более низкоуровневые средства для ускорения фазы пересчета состояния агентов, а в перспективе -рассмотреть вопрос об использовании таких аппаратных ускорителей, как Xeon Phi и NVidia CUDA.

Использование более эффективных

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

Примененная технология межузлового

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

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

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

Заключение

Возрастающий интерес крупнейших игроков IT-рынка (Microsoft, Wolfram, ESRI и др.) к АОМ доказывает перспективность этого инструмента и его большое будущее. А экспоненциальный рост общего объема данных, связанных с жизнедеятельностью людей, а также потребность в построении аналитических систем добычи данных нового поколения, необходимых для прогнозирования социальных явлений и событий, обусловливают применение суперкомпьютерных технологий.

В России АОМ получили развитие относительно

" 7

недавно, однако уже существует сайт , содержащий информацию о разработках в данной области, а ЦЭМИ РАН является флагманом этого научного направления в нашей стране.

Разработанная нами (совместно с группой сотрудников МГУ В.А. Васениным,

В.А. Рогановым и В.А. Борисовым) технология STARS позволяет легко реализовать как интерактивное моделирование, так и интерактивную визуализацию процесса моделирования в масштабе расчетного времени. Однако это возможно лишь в случае монопольного доступа к суперкомпьютеру (например, если будет использоваться компактный персональный суперкомпьютер). Для проведения масштабных экспериментов с более сложными агентами потребуется уже более вместительный и производительный суперкомпьютер8.

7 ArtSoc. Лаборатория искусственных обществ. URL: http//artsoc.ru

8 Более подробно про применение суперкомпьютерных технологий можно узнать по адресу URL: http/supercomputer.pro

Таблица 1

Абсолютное и относительное старение, наблюдаемое в популяции агентов

Возрастные группы 2007 г. 2026 г. Прирост численности за период, %

Численность агентов Доля в популяции, % Численность агентов Доля в популяции, %

0-49 лет 64 898 64,9 55 194 55,4 -15,0

Старше 80 лет 4 249 4,2 6 215 6,2 46,3

Вся популяция 100 000 - 99 666 - -0,3

Таблица 2

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

2007 г. 2026 г.

Возрастные группы Численность агентов Доля в возрастной группе, % Численность агентов Доля в возрастной группе, % Рост доли за период, %

Вся популяция 10 000 10,0 13 202 13,2 3,2

0-14 лет 2 659 16,9 3 632 24,6 7,7

15-24 года 1 636 13,1 1 973 18,9 5,8

25-49 лет 3 292 9,0 4 107 13,7 4,7

50-64 года 1 357 7,4 1 811 8,4 1,0

Старше 64 лет 1 056 6,3 1 679 7,3 1,0

Таблица 3

Оригинальная версия, 1 вычислительное ядро (8 Гб оперативной памяти)

Число агентов Время работы, с

50 000 1,8

100 000 6

200 000 28

400 000 92

800 000 360

1 600 000 1 485

Таблица 4

Параллельная версия, 4 вычислительных ядра

Число ядер Число кварталов Число агентов Время работы, с

1 12 100 0000 210

4 12 1 000 000 50

4 40 1 000 000 30

4 40 2 000 000 75

4 20 4 000 000 344

Таблица 5

Фрагмент вычислительного кластера (12 счетных ядер Core i7, 96 Гб оперативной памяти)

Число кварталов Число агентов Время работы, с

12 1 000 000 21

24 1 000 000 12

24 10 000 000 516

60 10 000 000 303

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

300 10 000 000 132

300 30 000 000 585

300 50 000 000 1 371

300 60 000 000 1 833

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

1. Макаров В.Л., Бахтизин А.Р. Социальное моделирование - новый компьютерный прорыв (агент-ориентированные модели). М.: Экономика, 2013. 295 с.

2. Shoham Y. Agent Oriented Programming: Technical Report. Computer Science Department, Stanford University, 1990.

3. Epstein J.M., Axtell R.L. Growing Artificial Societies: Social Science from the Bottom Up. Washington, D.C. and Cambridge, Mass.: Brookings Press and MIT Press, 1996.

4. Epstein J.M. Modelling to contain pandemics // Nature. 2009. № 6. P. 460.

5. Ambrosiano N. Avian Flu Modeled on Supercomputer // Los Alamos National Laboratory NewsLetter. 2006. Vol. 7. № 8.

6. Murgatroyd P., Craenen B., Theodoropoulos G., Gaffney V., Haldon J. Modelling medieval military logistics: an agent-based simulation of a Byzantine army on the march // Computational and Mathematical Organization Theory. 2012. Vol. 18. Iss. 4. P. 488-506.

7. Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. М.: Едиториал УРСС, 2002. 352 с.

8. Wittek P., Rubio-Campillo X. Scalable agent-based modelling with cloud HPC resources for social simulations. Proc. 4th Int. Conf. on Cloud Computing Technology and Science (CloudCom), December 3-6, 2012. Taipei, IEEE, 2012, pp. 355-362.

9. Roberts D.J., Simoni D.A., Eubank S., Marathe M., Eubank S., Atkins K., Romero P. et al. A National Scale Microsimulation of Disease Outbreaks. Supercomputing '07 Conference. Reno, NV, 2007.

10. Billari F.C., Prskawetz A. Agent-Based Computational Demography: Using Simulation to Improve Our Understanding of Demographic Behaviour. Heidelberg: Springer, 2003. 210 p.

11. Макаров В.Л., Бахтизин А.Р., Васенин В.А., Роганов В.А., Трифонов И.А. Средства суперкомпьютерных систем для работы с агент-ориентированными моделями // Программная инженерия. 2011. № 3. С. 2-14.

12. Вишневский А.Г. Воспроизводство населения и общество: история, современность, взгляд в будущее. М.: Финансы и статистика, 1982. 287 с.

13. Бахметова Г.Ш. Методы демографического прогнозирования. М.: Финансы и статистика, 1982.

14. Шахотько Л.П., Терещенко С.М. Компьютерное решение задачи построения демографических прогнозов // Вопросы статистики. 1999. № 10. С. 57-65.

15. Родители и дети, мужчины и женщины в семье и обществе / под ред. Т.М. Малевой, О.В. Синявской. М.: Независимый институт социальной политики, 2007. 640 с.

16. Шубат О.М., Багирова А.П. Прогнозирование вторых рождений у российских женщин: социолого-статистический подход // Проблемы прогнозирования. 2014. № 3. С. 131-140.

159 с.

ISSN 2311-875X (Online) National Interests

ISSN 2073-2872 (Print)

THE TECHNOLOGY TO SUPPORT AGENT-BASED MODELING FOR SUPERCOMPUTERS Valerii L. MAKAROVa% Al'bert R. BAKHTIZINb, Elena D. SUSHKOc

a Central Economics and Mathematics Institute, Russian Academy of Sciences, Moscow, Russian Federation makarov@cemi.rssi.ru

b Central Economics and Mathematics Institute, Russian Academy of Sciences, Moscow, Russian Federation albert. bakhtizin@gmail .com

c Central Economics and Mathematics Institute, Russian Academy of Sciences, Moscow, Russian Federation sushko_e@mail.ru

• Corresponding author

Article history:

Received 16 September 2015 Accepted 28 September 2015

JEL classification: C63, C88

Keywords: agent-based model, supercomputing technology, parallel computing, demographic models

Abstract

Importance The article discusses specialized software to implement agent-based models in supercomputers, and describes Supercomputer Technology for Agent-oRiented Simulation - STARS. Objectives The research sets up a multi-agent demographic model, which has the interface to demonstrate changes in the main demographic indicators of the region's population. We devise a methodology to effectively reflect the computing core of the multi-agent system in relation to the architecture of modern supercomputer.

Methods We apply the internode communication technology through the active messaging technology that allows to significantly increase the productivity of multi-agent models. Results STARS facilitates the implementation of online modeling and online visualization of the simulation process within the estimated time. Currently, it is possible only if there is a monopolistic access to supercomputer. To make large-scale experiments with more complicated agents, a more productive and data intensive supercomputer will be needed.

Conclusions and Relevance As the largest IT-market actors (Microsoft, Wolfram, ESRI, etc.) got more interested in AOM, the instrument proves to have good prospects and promising future. Supercomputing technologies and their application turn out to be reasonable and practicable, considering exponential growth in total data volume and the need to build analytical systems for obtaining new generation data required to predict social phenomena.

© Publishing house FINANCE and CREDIT, 2016

Acknowledgments

The research was supported by the Russian Science Foundation, project No. 14-18-01968.

References

1. Makarov V.L., Bakhtizin A.R. Sotsial'noe modelirovanie - novyi komp'yuternyi proryv (agent-orientirovannye modeli) [Social simulation is a new computational break-through (agent-based models)]. Moscow, Ekonomika Publ., 2013, 295 p.

2. Shoham Y. Agent Oriented Programming: Technical Report. Computer Science Department, Stanford University, 1990.

3. Epstein J.M., Axtell R.L. Growing Artificial Societies: Social Science from the Bottom Up. Washington, D.C., Brookings Institution Press, MIT Press, 1996.

4. Epstein J.M. Modelling to Contain Pandemics. Nature, 2009, no. 460.

5. Ambrosiano N. Avian Flu Modeled on Supercomputer. Los Alamos National Laboratory Newsletter, 2006, vol. 7, no. 8.

6. Murgatroyd P., Craenen B., Theodoropoulos G., Gaffney V., Haldon J. Modelling Medieval Military Logistics: an Agent-based Simulation of a Byzantine Army on the March. Computational and Mathematical Organization Theory, 2012, vol. 18, iss. 4, pp. 488-506.

7. Tarasov V.B. Ot mnogoagentnykh sistem k intellektual'nym organizatsiyam: filosofiya, psikhologiya, informatika [From multi-agent systems towards intelligent organizations: philosophy, psychology, informatics]. Moscow, URSS Publ., 2002, 352 p.

8. Wittek P., Rubio-Campillo X. Scalable Agent-based Modelling with Cloud HPC Resources for Social Simulations. Proc. 4th Int. Conf. on Cloud Computing Technology and Science (CloudCom), December 36, 2012. Taipei, IEEE, 2012, pp. 355-362.

9. Roberts D.J., Simoni D.A., Marathe M., Eubank S., Atkins K., Romero P. et al. A National Scale Microsimulation of Disease Outbreaks. Supercomputing '07 Conference. Reno, NV, 2007.

10. Billari F.C., Prskawetz A. Agent-Based Computational Demography: Using Simulation to Improve Our Understanding of Demographic Behaviour. Heidelberg, Springer, 2003, 210 p.

11. Makarov V.L., Bakhtizin A.R., Vasenin V.A., Roganov V.A., Trifonov I.A. Sredstva superkomp'yuternykh sistem dlya raboty s agent-orientirovannymi modelyami [Tools of supercomputing systems to handle agent-based models]. Programmnaya inzheneriya = Software Engineering, 2011, no. 3, pp. 2-14.

12. Vishnevskii A.G. Vosproizvodstvo naseleniya i obshchestvo: istoriya, sovremennost', vzglyad v budushchee [Population reproduction and the society: history, contemporary time, prospective views]. Moscow, Finansy i statistika Publ., 1982, 287 p.

13. Bakhmetova G.Sh. Metody demograficheskogo prognozirovaniya: monografiya [Demographic forecasting methods: a monograph]. Moscow, Finansy i statistika Publ., 1982, 159 p.

14. Shakhot'ko L.P., Tereshchenko S.M. Komp'yuternoe reshenie zadachi postroeniya demograficheskikh prognozov [Computing solution to demographic forecasting]. Voprosy Statistiki, 1999, no. 10, pp. 57-65.

15. Roditeli i deti, muzhchiny i zhenshchiny v sem'e i obshchestve [Parents and Children, Men and Women in Family and Society]. Moscow, Independent Institute for Social Policy Publ., 2007, 640 p.

16. Shubat O.M., Bagirova A.P. Prognozirovanie vtorykh rozhdenii u rossiiskikh zhenshchin: sotsiologo-statisticheskii podkhod [Forecasting second child births of the Russian women: social and statistical considerations]. Problemyprognozirovaniya = Problems of Forecasting, 2014, no. 3, pp. 131-140.

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