Введение 3
1 Обзор литературы 5
1.1 Математическая модель 5
1.2 Разностные схемы 7
1.3 Технологии параллельных вычислений 8
1.4 Модельные задачи 10
1.5 Существующие программные пакеты 13
1.6 Вывод 14
2 Параллельные алгоритмы и их реализация 15
2.1 Уравнение переноса 15
2.2 Модель системы сосудов 18
2.3 Результаты и выводы 26
Заключение 28
Список литературы 30
По опубликованным Росстатом данным в 2019 доля смертей от заболеваний сердечно-сосудистой системах составляла около 57% [1]. В связи со столь высоким показателем изучение данных заболеваний и способов их предотвращения является крайне актуальной задачей. В связи с этим появляется необходимость изучения и математического моделирования процессов гемодинамики.
Математические модели процессов, происходящих в сердечно-сосудистой системе человека, представляют собой нелинейные системы уравнений в частных производных. Начально-краевые задачи для таких систем записываются на структурах, представляющих собой графы или деревья, состоящие из большого числа рёбер и узлов [2, 3]. Такие структуры моделируют реальные участки сосудистой системы. Из-за наличия нелинейностей такие задачи могут быть решены только с использованием численных методов. В связи с относительно большим числом ребер, такие задачи становятся весьма затратными для проведения расчетов даже на современных вычислительных устройствах. Другой же проблемой является необходимость использования сеток с достаточно большим числом узлов на каждом из участков такой структуры. В связи с этим возникает необходимость использования параллельных вычислений и высокопроизводительных систем с целью ускорения расчетов.
Целью данной работы является исследование возможностей применения высокопроизводительных систем (таких как многопроцессорные вычислительные системы и графические ускорители) к решению задач моделирования кровотока. Для выполнения данной цели поставлены следующие задачи:
• Исследование численных схем, применяемых для решения задач для уравнений гемодинамики.
• Разработка и анализ параллельных алгоритмов решения задач.
• Программная реализация для проведения расчетов с использованием высокопроизводительных систем и графических процессоров, и изучение сложностей, возникающих при реализации параллельных алгоритмов.
Данная работа имеет следующую структуру. В главе 1 рассмотрены математические модели, описывающие течение крови в системе сосудов (§1.1) и численные схемы, применяемые для решения систем уравнений, используемых в данных моделях (§1.2). Рассмотрены технологии применения параллельных вычислений, позволяющие добиться прироста производительности при решении задач для данных систем (§1.3), а также рассмотрены уже существующие программные пакеты, реализующие расчеты на основе различных моделей сосудистых систем (§1.4). В главе 2 предложены параллельные алгоритмы решения задач для уравнений, моделирующих течение крови. В §2.1 в демонстрационных целях предложены алгоритмы для решения уравнения переноса. В §2.2 предложены и реализованы алгоритмы, моделирующие поток крови в модельных системах. Также здесь обсуждаются особенности программной реализации предложенных алгоритмов, описываются возникающие трудности, причины их появления и возможные способы их решения. В данной главе рассмотрены и проанализированы результаты применения данных алгоритмов и проведено сравнение достоинств и недостатков различных методов задействования высокопроизводительных систем. В заключении подведены итоги по выполненной работе и представлены полученные в ней результаты.
Таким образом в выпускной квалификационной работе были получена: следующие результаты:
• Проведено исследование численных схем, применяемых для решения задач для уравнений гемодинамики.
• Были разработаны параллельные алгоритмы решения задач и проведен их анализ.
• Данные алгоритмы были реализованы для проведения расчетов с использованием высокопроизводительных систем на основе CPU (с использованием ОрепМР) и GPU (с использованием CUDA), а также изучены сложности, возникающие при реализации параллельных алгоритмов.
По полученным результатам можно сделать следующие выводы:
• Как можно видеть из полученных результатов — рассмотренные методы позволяют достичь значительного ускорения решения подобных задач, однако существуют различные трудности, от сложности решения которых будет зависеть целесообразность применения подобных методов.
• Применение CUDA требует осуществления копирования данных в память графического процессора, а в связи с тем, что операции копирования требует расходов программного времени на их запуск, большое их количество может привести к тому, что применение CUDA не даст прироста производительности.
• Стоит учитывать особенности высокопроизводительных систем при решении вопроса о целесообразности их применения. Так, полученные результаты говорят о том, что CUDA наиболее хорошо подходит для задач с большим числом узлов и отсутствием необходимости копировать данные между шагами вычислений, в то время как ОрепМР позволяет добиться прироста производительности на простых задачах с низким числом узлов.