Гибридное распараллеливание с OpenMP и MPI
Я пытаюсь настроить программу, которая работает на кластере из 20 узлов, каждый с 12 ядрами в каждом. Идея состоит в том, чтобы головной процесс распределял некоторые данные по каждому узлу, и чтобы каждый узел выполнял некоторые операции с данными, используя OpenMP, чтобы использовать 12 ядер. Я относительно новичок в этом и не уверен, как лучше это настроить.
Мы использовали PBS в качестве планировщика, и мой первоначальный план состоял в том, чтобы создать отдельный процесс MPI на каждом узле и позволить OpenMP создавать 12 потоков на узел.
#PBS -l nodes=20:ppn=1
Но когда я запускаю это, кажется, что OpenMP создает только 1 поток на процесс. Как я могу настроить это так, чтобы OpenMP всегда создавал 12 потоков на процесс MPI?
Изменить: как только я укажу использовать более 1 процесса в PBS, OpenMP начнет использовать 6 потоков на процесс, похоже, не может понять, почему использование только 1 процесса на узел не работает.