Совместное использование технологий OpenMP и MPI на узлах вычислительного кластера - А. С. Федулов
Автор: | А. С. Федулов |
Издательство: | Синергия |
Серия: | Прикладная информатика. Научные статьи |
Жанр произведения: | Техническая литература |
Год издания: | 2021 |
isbn: |
Данная работа посвящена проблеме реализации эффективной параллельной программы, решающей поставленную задачу с использованием максимально доступного количества ресурсов вычислительного кластера, с целью получения соответствующего выигрыша в производительности по отношению к последовательной версии алгоритма. Основная цель работы заключалась в исследовании возможностей совместного использования технологий распараллеливания OpenMP и MPI с учетом характеристик и особенностей решаемых задач для повышения производительности выполнения параллельных алгоритмов и программ на вычислительном кластере. В статье проведен краткий обзор подходов к вычислению функции трудоемкости для последовательных программ. Для определения трудоемкости параллельных программ в работе был использован подход на основе пооперационного анализа. Описаны особенности технологий распараллеливания последовательных программ OpenMP и MPI. Приведены основные программно-аппаратные факторы, влияющие на скорость выполнения параллельных программ на узлах вычислительного кластера. Основное внимание в работе уделено исследованию влияния на производительность соотношения количества вычислительных и обменных операций в программе. Для реализации исследований были разработаны тестовые параллельные OpenMP- и MPI-программы, в которых задается общее количество операций и соотношение между вычислительными и обменными операциями; также в тестовых программах был предусмотрен замер времени их выполнения. В качестве программно-аппаратной платформы был использован вычислительный кластер, состоящий из нескольких узлов. Проведенные экспериментальные исследования позволили подтвердить эффективность гибридной модели параллельной программы в многоузловых системах с разнородной памятью с использованием OpenMP в подсистемах с общей памятью, а MPI – в подсистеме с распределенной памятью.