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

Оптимизация скорости вычисления крупномасштабных агент-ориентированных моделей, реализуемых в среде NetLogo с помощью суперкомпьютеров и кластеров высокопроизводительных вычислительных средств Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
90
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
суперкомпьютеры / высокопроизводительные вычисления / NetLogo / информационные технологии / агент-ориентированное моделирование / экономико-математические методы / supercomputers / high-performance computing / NetLogo / information technologies / agent based modeling / economical and mathematical methods

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Владимир Иванович Абрамов

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Владимир Иванович Абрамов

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

Optimizing Computational Speed of Large-scale Agent Based Models Implemented in NetLogo Environment on Supercomputers and High-Performance Computing Clusters

This paper is devoted to code optimization methods by developing large-scale agent-based models in NetLogo environment with the possibility of their launch on supercomputers and clusters of highperformance computing tools. Implementation of such models requires additional costs from the point of ensuring an acceptable speed of execution of the developed models. Earned results showed that NetLogo software tool is efficient for modeling experiments as well as the convenience of using BehaviorSpace and RNetLogo to run paralleled simulations on supercomputers or cluster of high-performance computing tools. Additional potential for implementing large-scale agent-oriented models in NetLogo confirmed by avoiding problems related to computing performance.

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

УДК 338 ББК 65.05

DOI 10.24411/2073-3305-2019-10138

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

вычислительных средств

Optimizing Computational Speed of Large-scale Agent Based Models Implemented in NetLogo Environment on Supercomputers and High-Performance Computing Clusters

Владимир Иванович АБРАМОВ,

кандидат экономических наук, старший научный сотрудник Центрального экономико-математического института Российской академии наук

E-mail: wladimir.abramow@gmail.com Работа выполнена при поддержке гранта Российского научного фонда, проект № 19-18-00240

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

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

Abstract. This paper is devoted to code optimization methods by developing large-scale agent-based models in NetLogo environment with the possibility of their launch on supercomputers and clusters of highperformance computing tools. Implementation of such models requires additional costs from the point of ensuring an acceptable speed of execution of the developed models. Earned results showed that NetLogo software tool is efficient for modeling experiments as well as the convenience of using BehaviorSpace and RNet-Logo to run paralleled simulations on supercomputers or cluster of high-performance computing tools. Additional potential for implementing large-scale agent-oriented models in NetLogo confirmed by avoiding problems related to computing performance.

Keywords: supercomputers, high-performance computing, NetLogo, information technologies, agent based modeling, economical and mathematical methods

Введение

Среда Ме'Ъ1ю£о зарекомендовала себя в качестве эффективного инструмента для разработки

агент-ориентированных моделей в области гуманитарных и технических наук [1—3]. К преимуществам программы можно отнести удобный

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

Несмотря на перечисленные выше преимущества, к недостаткам системы можно отнести невысокий уровень производительности при решении сложных вычислительных задач. В связи с тем, что ПО NetLogo предназначено для сокращения затрат на разработку моделей, бытует мнение, что для разработки крупномасштабных моделей требуются иные программные средства с низкоуровневым языком программирования [4—6].

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

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

Методы написания эффективного программного кода в NetLogo

Для написания программного кода модели NetLogo, применимого для использования на суперкомпьютерах и высокопроизводительных

вычислительных средствах, можно выделить пять этапов:

(1) написание исходного программного кода с использованием базовых элементов NetLogo, тестирование разработанной программы с целью обнаружения ошибок;

(2) измерение времени выполнения исходного кода в рамках тестовых сценариев, используя таймер NetLogo;

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

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

(5) ускорение выявленных процедур с помощью комплекса мер по их оптимизации.

Базовым инструментом измерения исполнительной скорости модели является таймер, вызываемый элементарной процедурой reset-timer и timer. При использовании таймера следует помнить, что NetLogo в первые 2—3 раза выполняет процедуру значительно медленнее, в связи с чем процедуру необходимо повторять до тех пор, пока они не приведут к стабильным результатам. Таймер может использоваться для вычисления времени, затраченного на полный прогон модели, например:

to go

if (ticks < 1) [ reset-timer ] tick

if (stopping-condition)

[

show (word "Выполнение завершено за "timer " секунд") stop

]

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

С точки зрения оптимизации кода, необходимо:

(1) отключить профайлер NetLogo, требующий ресурсы оборудования;

(2) проверить и изменить настройки графического отображения моделей NetLogo. Выбор режима обновления графики «по тактам» (один раз за шаг) позволяет ус-

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

(3) использовать 64-битную версию NetLogo. Скорость выполнения моделей зачастую превышает 30—40% относительно в 32-битного режима.

(4) использовать комментирование операторов кода.

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

Дополнительная оптимизация программного кода заключается в привязке групп агентов к отдельным группам точек в пространстве. В таком случае сокращение вариантов для перемещения агентов сократит нагрузку на вычислительное оборудование. Так, например, базовым способом для агента в NetLogo определения допустимой точки перемещения является оператор in-radius, требующий перебора всех пространственных точек, тогда как использование назначенной переменной (например, destinationPoints) сократит время на обработку кода, который будет инициализироваться в следующем виде:

ask patches

[set destinationPoints patches in-radius 8 with [density = low]]

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

let destinationPoints patches in-radius 8 with [density = low]

ifelse any? destinationPoints [

move-to one-of destinationPoints ]

[

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

Одним из ключей к практическому применению стандартных видов анализа моделей является использование эффективных схем анализа, которые широко обсуждаются в литературе по агент-ориентированному моделированию. Инструмент BehaviorSearch включает в себя комплекс алгоритмов (например, генетические алгоритмы и симуляция восстановления) для сглаживания значений параметров в моделях. Таким образом, указанный инструмент является эффективным методом параметризации во многих крупномасштабных агент-ориентированных моделях NetLogo [8].

Уменьшение вычислительной нагрузки при анализе модели можно также добиться с помощью методов, доступных в программном средстве RNetLogo, в том числе выборки латинского гиперкуба для анализа неопределенности, а также метода Морриса для анализа чувствительности. Использование пакета RNetLogo для запуска моделей NetLogo из популярного статистического программного обеспечения R позволяет, к примеру, отправлять из NetLogo набор входных значений, а затем получать и анализировать результаты модели с помощью платформы R [9; 10]. В свою очередь, наличие в среде R пакета для распараллеленных вычислений позволяет проводить имитационные эксперименты на суперкомпьютерах и высокопроизводительных средствах.

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

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

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

Заключение

Несмотря на то, что NetLogo является одной из наиболее широко используемой платформой для агент-ориентированного моделирования, реализация моделей для суперкомпьютеров и высокопроизводительных вычислительных средств требует дополнительных затрат с точки зрения оптимизации программного кода для обеспечения приемлемой скорости выполнения разрабатываемых моделей. Выбор другой платформы, особенно требующей программирования на языках C++ или C#, сопряжен с большими затратами на написание программного кода, отладку и тестирование и не гарантирует преимущество в быстродействии [11; 12].

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

Литература

1. Макаров ВЛ., Бахтизин А.Р., Сушко Е.Д. Мультиагентные системы и суперкомпьютерные

технологии в общественных науках // Нейрокомпьютеры: разработка, применение. 2017. № 5. С. 3—9.

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

3. Макаров ВЛ., Бахтизин А.Р., Сушко Е.Д., Абрамов В.И. Компьютерное моделирование в управлении экономикой (методологическая основа для стратегического планирования) // Государственный аудит. Право. Экономика. 2017. № 3.

4. Sklar E. NetLogo, a multi-agent simulation environment // Artificial Life, 13(3), 303-11, 2007, D01:10.1162/artl.2007.13.3.303

5. Bouquet F., Chipeaux S., Lang C., Marilleau N., Nicod J-M., Taillandier P. Introduction to the agent approach // Agent-based Spatial Simulation with NetLogo. Volume 1. Introduction and Bases. London: ISTE Press, 2015, D0I:10.1016/b978-1-78548-055-3.50001-0

6. Lammoglia A., Josselin D., Marilleau N. Some propositions to find optimal conditions to simulate a flexible transport using an agent-based model [Электронный ресурс] // Cybergeo: European Journal of Geography. URL: http://cybergeo.revues. org/27046.Stonedahl et al. 2006 (посл. Обращение 01.09.2019 г.)

7. Railsback S.F., Grimm V. Agent-based and Individual-based Modeling: A Practical Introduction. Princeton, New Jersey: Princeton University Press, 2012.

8. Stonedahl F., Wilensky U. Behavior Search. [Электронный ресурс] // URL: http://www. webcitation.org/6H90gKler (дата обращения: 01.09.2019).

9. Thiele J., Kurth W., Grimm V. RNetLogo: An R package for running and exploring individualbased models implemented in NetLogo // Methods in Ecology and Evolution, 3(3), 480-483б 2012б D0I:10.1111/j.2041-210X.2011.00180.x]

10. Thiele J., Kurth W., Grimm V. Facilitating parameter estimation and sensitivity analysis of agent-based models: a cookbook using NetLogo. // Journal of Artificial Societies and Social Simulation, 17 (11) 3, 2014, D0I:10.18564/jasss.2503. URL: http://jasss.soc.surrey.ac.uk/20/1/3.html (дата обращения: 01.09.2019).

11. Railsback S.F., Lytinen S.L., Jackson S.K. Agent-based simulation platforms: review and development recommendations. Simulation, 82(9), 609-623, 2016, D0I:10.1177/0037549706073695]

12. Lytinen S.L., Railsback S.F. The evolution of agent-based simulation platforms: a review of NetLogo 5.0 and ReLogo // Fourth International Symposium on Agent-Based Modeling and Simulation. Vienna, Austria, 2012.

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