Научная статья на тему 'ИСПОЛЬЗОВАНИЕ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ ПРИ МОДЕЛИРОВАНИИ ИШЕМИЧЕСКОГО ИНСУЛЬТА МЕТОДОМ МОНТЕ-КАРЛО'

ИСПОЛЬЗОВАНИЕ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ ПРИ МОДЕЛИРОВАНИИ ИШЕМИЧЕСКОГО ИНСУЛЬТА МЕТОДОМ МОНТЕ-КАРЛО Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
16
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНАЯ АРХИТЕКТУРА / МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ / МЕТОД МОНТЕ-КАРЛО РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ / ИШЕМИЧЕСКИЙ ИНСУЛЬТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ананьев А.В., Зинченко Д.С., Фурсов В.В.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ананьев А.В., Зинченко Д.С., Фурсов В.В.

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

THE USE OF DISTRIBUTED COMPUTING IN MONTE CARLO METHOD MODELING OF ISCHEMIC STROKE

This article compares the available techniques for paralleling computations to speed up parametric analysis of the mathematical model of ischemic stroke on the brain area. According to the results of the study, the most effective strategy, which provided a four and a half-fold increase in processing speed in the experiment was identified.

Текст научной работы на тему «ИСПОЛЬЗОВАНИЕ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ ПРИ МОДЕЛИРОВАНИИ ИШЕМИЧЕСКОГО ИНСУЛЬТА МЕТОДОМ МОНТЕ-КАРЛО»

УДК 004.94: 616.831-005.4

Ананьев А.В., Зинченко Д.С., Фурсов В.В.

ИСПОЛЬЗОВАНИЕ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ ПРИ МОДЕЛИРОВАНИИ ИШЕМИЧЕСКОГО ИНСУЛЬТА МЕТОДОМ МОНТЕ-КАРЛО

Ананьев Александр Владимирович, - студент 2 курса магистратуры факультета цифровых технологий и химического инжиниринга; globalresearching@yandex.ru, Москва, +79966408814

Зинченко Дарья Ивановна, - аспирант, ассистент кафедры информационных компьютерных технологий, zinchenko789@yandex.ru;

Фурсов Валентин Владимирович, - к.ф.н., доцент кафедры информационных компьютерных технологий; Российский химико-технологический университет им. Д.И. Менделеева, Россия, Москва, 125047, Миусская площадь, дом 9.

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

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

THE USE OF DISTRIBUTED COMPUTING IN MONTE CARLO METHOD MODELING OF ISCHEMIC STROKE

Ananiev A.V., Zinchenko D.S., Fursov V.V.

D. Mendeleev University of Chemical Technology of Russia, Moscow, Russia, 125047, Miusskaya 9

This article compares the available techniques for paralleling computations to speed up parametric analysis of the mathematical model of ischemic stroke on the brain area. According to the results of the study, the most effective strategy, which provided a four and a half-fold increase in processing speed in the experiment was identified. Keywords: software architecture, mathematical modeling, Monte Carlo method distributed computing, ischemic stroke

Введение

Моделирование биологических, физических и медицинских объектов является одной из самых насущных проблематик современной науки [1]. Моделирование осуществляется практически на всех уровнях организации материи от атомарного до астрономического. Соответственно, степень дискретизации моделей может быть различной. Так, система функций, выражающая популяцию народонаселения в масштабе нашей планеты может быть описана моделью с числом дискретных элементов порядка 109, и, в то же время, моделирование нейронных взаимосвязей участка мозга крысы размером 0.29 мм3 требует описания такого же количества элементов с экспоненциальным ростом количества комбинаций взаимосвязей между ними. Многие процессы в живой и неживой природе подчиняются стохастическим законам распределения событий. Благодаря этому существует возможность моделирования биологических систем методом Монте-Карло. Одним из наиболее актуальных направлений в медицине является изучение социально значимых заболеваний, например -ишемического инсульта мозга [2]. В современной научной литературе отмечается ряд недостатков существующих биологических и математических моделей инсульта мозга, что делает вопросы разработки и развития новых математических моделей особенно актуальными.

Материалы и методы

Нами была предложена и реализована на языке Python 3.9 компьютерная стохастическая дискретная модель развития ишемического инсульта на участке головного мозга [3]. Согласно нашей гипотезе, участок мозговой ткани в данной модели представлен как решетка клеточного автомата, где узловым единичным элементом является так называемая нейроваскулярная единица мозга. С помощью данной модели предполагается моделирование эволюции пространственной структуры участка ишемии головного мозга при различных начальных состояниях и внешних воздействиях [3]. Сам по себе метод Монте-Карло не поддается распараллеливанию, так как каждое последующее состояние решетки модели зависит от предыдущего. Однако, любое исследование с применением стохастической модели предполагает многократный запуск вычислений с усреднением результатом. Также, необходимо помнить, что настройка и корректировка параметров модели каждый раз при введении в базовую реализацию новых условий, требует проведения

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

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

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

И там и там используется лишь один процессор. Он переключается между различными задачами, которые ему нужно решить. Разница между применением многопоточности и модуля asyncio заключается в том, как принимаются решения о смене задач. При использовании многопоточности операционная система знает о наличии различных потоков и может в любое время прерывать их работу и переключать на другую задачу. Сама программа это не контролирует. Это — то, что называется «вытесняющей многозадачностью» (preemptive multitasking), так как операционная система может принудить поток выполнить переключение на другую задачу. В большинстве языков программирования потоки выполняются

параллельно, но в Python в каждый конкретный момент времени позволено выполняться лишь одному потоку [4].

При использовании модуля asyncio программа сама принимает решение о том, когда ей нужно переключиться между задачами. Каждая задача взаимодействует с другими задачами, передавая им управление тогда, когда она к этому готова. Поэтому такая схема работы называется «кооперативной многозадачностью» (cooperative multitasking), так как каждая задача должна взаимодействовать с другими, передавая им управление в момент, когда она уже не может сделать ничего полезного [4].

Существует и третий способ, когда вычислительные задачи возможно запускать в отдельных процессах и, естественно, на нескольких физических или виртуальных рабочих станциях. Каждый запрос на обработку данных обслуживается отдельным экземпляром приложения. Когда создаётся новый экземпляр приложения — имеется небольшая задержка, связанная с выделением ресурсов и запуском этого экземпляра приложения. Именно поэтому экземпляры могут какое-то время простаивать, ожидая поступления новых запросов. Запросы, если они поступают уже запущенному экземпляру приложения, могут быть выполнены практически мгновенно, без задержек. А вот после того, как новых запросов некоторое время не поступает — бездействующие экземпляры приложения могут уничтожаются, ресурсы, занятые ими, возвращаться системе. Экземпляры приложения не могут взаимодействовать с другими экземплярами приложения. Они ни при каких условиях не должны хранить состояние приложения между вызовами, так как они могут быть уничтожены в любой момент [5].

Для поиска наиболее эффективного метода распараллеливания вычислений для предложенной нами математической модели инсульта мозга был создан испытательный стенд на базе сервера и находящихся в одном с ним пространстве ip-адресов 3 рабочих станций. Характеристики каждой ЭВМ идентичны: Intel Celeron 4Core

J 1900(2Ghz)/8192Mb/128SSDGb/Debian 10. Исполняемый программный модуль, реализующий расчеты для модели, развернут через пакет docker на каждой рабочей станции. На основном сервере запущен тот же модуль, но в режиме сервера. На дисковом хранилище сервера находится хранилище с входящими данными и хранилище для полученных данных. При запуске серверной программы происходит попытка загрузки по одному набору входных данных и параметров из подготовленного заранее пула на каждую рабочую станцию. Серверная программа осуществляет кроме того контроль уведомлений от рабочих станций о статусе вычислений, готовности к выгрузке результатов на сервер и готовности к загрузке нового задания. На рисунке 1 представлено схематическое изображение взаимосвязей компонентов стендовой установки для распределенных вычислений.

Рис. 1 Стенд для изучения распределенных вычислений.

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

Второй стенд для испытаний представляет собой одну ЭВМ с идентичными описанным выше характеристиками, на которой последовательно запускается asyncio и многопотоковая версия программного модуля модели с таким же пулом входных данных. Каждый запуск стенда профилируется по временным затратам, подчитывается среднее время обработки одного набора данных. Запуск также производился в 4 потока/процесса. Пул заданий состоял из 256 наборов данных.

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

Результаты исследования

Полученные результаты сведены в таблицу 1.

Таблица 1. Результаты замеров временных затрат при запуске модели с различными входными данными

Исполнение Среднее время, с Общее время, с

Последовательное 1227 314 112

Многопоточное 970,6 248 490

asyncio 750,83 192 213

Распределенное 381 97 536

Распределенное+ asyncio 269,64 69 028

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

Выводы

Полученные данные замеров времени, затраченного на вычисление одного набора параметров из заданного пула, свидетельствуют о том, что запуск программной реализации модели на распределенных ЭВМ с применением дополнительно стратегии asyncio позволяет максимально эффективно использовать ресурсы каждой машины, входящей в вычислительный пул и достичь наибольшей скорости выполнения задач. Многопоточный вариант не сильно выигрывает по сравнению с последовательным исполнением каждого набора из пула данных на одной ЭВМ (общее время вычисления пула данных 3-4 дня) из-за особенностей реализации многопоточности в языке Python. Асинхронный вариант показал вполне приемлемую эффективность. С помощью распределенных вычислений удалось достичь самых лучших показателей скорости обработки всего пула

данных. При этом, с применением дополнительно технологии asyncio, уменьшение среднего времени на одну задач далеко не линейно, что связано с внутренними механизмами обработки потоков данного языка программирования. Однако, при увеличении количества машин, входящих в вычислительный пул, возможен значительный прирост скорости вычислений пула данных. Можно предположить, что при благоприятных условиях, время обработки всех наборов данных при количестве ЭВМ в вычислительном пуле, равном примерно количеству наборов данных, будет стремиться к среднему времени обработки одного набора данных на локальной машине (1227с). Данная стратегия может быть использована для задания большого количества наборов входных данных для проверки исследовательских гипотез, вычислений многослойной (то есть объемной) модели очага инсульта мозга с приемлемыми временными затратами.

Работа выполнена при поддержке гранта

Министерства науки и высшего образования Российской Федерации № 075-15-2020-792 (Уникальный идентификатор RF—190220X0031).

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

1. Курбатова П. В. Математическое моделирование в биологии и медицине с использованием дифференциальных уравнений //Моделирование. Фундаментальные исследования, теория, методы и средства. - 2018. - С. 10-10.

2. Fursov V. V. et al. In Silico Studies on Pharmacokinetics and Neuroprotective Potential of 25Mg2+: Releasing Nanocationites - Background and Perspectives//Pharmacogenetics. - 2021. - С. 155.

3. Фурсов В.В., Ананьев А.В., Ананьев В.Н. Компьютерная математическая модель патофизиологических изменений участка мозговой ткани при развитии инсульта // Естественные и технические науки. - 2022. - № 5(168). - С. 173-177.

4. Wu X. et al. SwitchFlow: preemptive multitasking for deep learning //Proceedings of the 22nd International Middleware Conference. - 2021. - С. 146-158.

5. Булгаков Д. Ю. Использование распределенных облачных вычислений при решении ресурсоемких задач, активно использующих CPU //Программная инженерия. - 2021. - Т. 12. - №. 5. -С. 233-245.

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