2013-08-24 2 views
3

Я пытаюсь запустить код с использованием гибридного MPI-OpenMP-распараллеливания. По моим сведениям, если число потоков OpenMP меньше числа физических процессоров, каждый процессор работает по одному потоку. Предполагая, что это так, предположим, что у меня есть гипотетический вычислительный узел, состоящий из двух вычислительных карт. Каждая вычислительная карта имеет чипы с 4 процессорами + память. Мой вопрос: каким будет оптимальный выбор параметров MPI и OpenMP. Я бы сказал, что 2 задания MPI и 4 потока каждый, это правильно?Оптимальный способ работы гибридного MPI - задания OpenMP

OMP_NUM_THREADS = 4 mpirun -np 2 code

Я слышал от некоторых коллег, что эти параметры должны быть тщательно подобраны, чтобы получить максимальную производительность (в зависимости от расположения оборудования). Я был бы признателен за некоторые советы по запуску гибридных рабочих мест.

Благодаря

ответ

3

Выбор правильной конфигурации распараллеливания для кода реального приложения никогда не тривиально. Оптимальное сопоставление процессов MPI и потоков OpenMP с многопроцессорным узлом зависит от конкретной реализации алгоритма, среды выполнения OpenMP, внутренней организации иерархии кэш-памяти и других факторов, связанных с архитектурой процессора.

Поэтому пользователям рекомендуется выполнять различные конфигурации на своем конкретном оборудовании, чтобы найти оптимальное назначение. Вы можете найти ряд отчетов по таким исследованиям среди технических отчетов исследовательских вычислительных средств и консультантов HPC.

На m x n узле, где m является числом процессорных сокетов и n этого числа процессорных ядер такого эксперимент предполагает выполнение кода для всех возможных целочисленных значений числа MPI процессов p и OpenMP нитей q таким образом, что p x q = m x n для каждого доступного компилятора.

Здесь приведен график параллельного ускорения, полученный для различных комбинаций p и q для узла 4 x 12 AMD Opteron. Данные, полученные от HiPERiSM Consulting LLC technical report HCTR-2011-2 от George Delic, 2010. Parallel speedup for different numbers of MPI processes and OpenMP threads. Data taken from HiPERiSM Consulting LLC technical report HCTR-2011-2 by George Delic, 2010 Вы можете видеть, что для этого конкретного кода архитектура процессора оптимальное количество потоков OpenMP для процесса MPI равно 1. Однако случай с 4 потоками и 12 процессами MPI закрыть второй.

Смежные вопросы