Выч. мет. программирование,
2013, том 14, выпуск 3,страницы 375–382(Mi vmp126)
Вычислительные методы и приложения
Трехуровневый MPI+NUMA+Threads метод построения параллельных программ для расчета задач гидродинамического моделирования на кластерных системах с узлами с неоднородным доступом к памяти
Аннотация:
Рассматривается параллельная реализация программы решения задачи трехфазной фильтрации вязкой сжимаемой жидкости на кластерных системах с распределенной памятью, узлы которых имеют разное время доступа процессоров к различным участкам своей памяти. Традиционным подходом построения параллельных программ на кластерных системах с распределенной памятью является использование библиотеки MPI. В силу специфики решаемой задачи приходится иметь дело с неструктурированной расчетной сеткой и моделированием динамически меняющегося набора скважин, проходящих через значительное число блоков сетки. Это вносит ряд проблем при использовании традиционного подхода: дисбаланс загруженности вычислительных узлов, увеличение объема пересылок между MPI-процессами, увеличение используемого объема оперативной памяти и др. Предлагается трехуровневый MPI+NUMA+Threads-метод построения параллельной программы, целью которого является решение указанных проблем. В основе метода лежит идея переноса архитектуры узла кластера (многоядерность и неоднородный доступ к общей памяти узла) на архитектуру параллельной программы. Выполнено сравнение программ, реализованных с использованием предложенного метода и традиционного подхода, с точки зрения скорости работы и объема используемой оперативной памяти. Приведены результаты численных экспериментов на большом количестве реальных задач.