ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ И ПРОГРАММИРОВАНИЕ
Архив статей журнала
Рассматривается задача параллельной реализации алгоритма определения сейсмического источника внутри случайно-неоднородной среды. Алгоритм определения исходной позиции источника использует данные записанных сейсмограмм на свободной поверхности и информацию о статистических свойствах случайной среды. Предложенный подход требует решения большого количества задач динамической теории упругости для различных статистически эквивалентных скоростных моделей, идентифицированных по статистическим параметрам исходной среды. Это наиболее трудоемкая часть алгоритма решения. Чтобы ускорить расчеты, используется двухуровневая стратегия распараллеливания с помощью создания групп, каждая из которых решает свою задачу динамической теории упругости с декомпозицией расчетной области внутри группы. Реализация программы выполнена с использованием Fortran Coarray. Также приводится сравнение используемых конструкций расширения Fortran Coarray с функциями MPI.
Системы SAPFOR и DVM были спроектированы и предназначены для упрощения разработки параллельных программ научно-технических расчетов. Главной целью системы SAPFOR является автоматизация процесса отображения последовательных программ на параллельные архитектуры в модели DVMH. В некоторых случаях пользователь системы SAPFOR может рассчитывать на полностью автоматическое распараллеливание, если программа была написана или приведена к потенциально параллельному виду. DVMH модель представляет собой расширение стандартных языков C и Fortran спецификациями параллелизма, которые оформлены в виде директив и не видимы стандартным компиляторам. В статье будет рассмотрено автоматизированное дополнительное распараллеливание существующих MPI-программ с помощью системы SAPFOR, где, в свою очередь, будут использованы новые возможности DVMH модели по распараллеливанию циклов в MPI программе внутри узла. Данный подход позволяет существенно снизить трудоемкость распараллеливания MPI программ на графические ускорители и многоядерные процессоры, сохранив при этом удобство сопровождения уже написанной программы. Данная возможность в системе SAPFOR была реализована для языков Fortran и C. Эффективность данного подхода показана на примере некоторых приложений из пакета NAS Parallel Benchmarks.