В работе рассматривается применение технологии Message Passing Interface (MPI) для распараллеливания программного алгоритма, основанного на сеточно-характеристическом методе, применительно к численному решению уравнения линейной теории упругости. Данный алгоритм позволяет численно моделировать распространение динамических волновых возмущений в твердых деформируемых телах. К такого рода задачам относится решение прямой задачи распространения сейсмических волн, что представляет интерес в сейсмике и геофизике. В основе решателя лежит сеточно-характеристический метод. В работе предложен способ уменьшения времени взаимодействия между процессами MPI в течение расчета. Это необходимо для того, чтобы можно было производить моделирование в сложных постановках, при этом сохраняя высокую эффективность параллелизма даже при большом количестве процессов. Решение проблемы эффективного взаимодействия представляет большой интерес, когда в расчете используется несколько расчетных сеток с произвольной геометрией контактов между ними. Сложность данной задачи возрастает, если допускается независимое распределение узлов расчетных сеток между процессами. В работе сформулирован обобщенный подход для обработки контактных условий в терминах переинтерполяции узлов из заданного участка одной сетки в определенную область второй сетки. Предложен эффективный способ распараллеливания и установления эффективных межпроцессорных коммуникаций. Приведены результаты работы реализованного программного кода: получены волновые поля и сейсмограммы как для 2D-, так и для 3D-постановок. Показано, что данный алгоритм может быть реализован в том числе на криволинейных расчетных сетках. Рассмотренные постановки демонстрируют возможность проведения расчета с учетом топографии среды и криволинейных контактов между слоями. Это позволяет получать более точные результаты, чем при расчете только с использованием декартовых сеток. Полученная эффективность распараллеливания — практически 100 % вплоть до 4096 процессов(за основу отсчета взята версия, запущенная на 128 процессах). Дале наблюдается ожидаемое постепенное снижение эффективности. Скорость спада не велика, на 16384 процессах удается сохранить 80%-ную эффективность.
параллельное программирование, сеточно-характеристический метод, структурированные сетки