LINUX.ORG.RU

История изменений

Исправление Jurik_Phys, (текущая версия) :

Буквально вчера обратил внимание.

Условие: а.out внтри себя использует дополнительно распараллеливание через openmp, а распараллеливание через openmpi возможно на 2 процесса т.к., в задаче две расчётные сетки.

Так вот ./a.out загружает все 8 ядер процессора.

 Mesh      1 is assigned to MPI Process      0
 Mesh      2 is assigned to MPI Process      0
 OpenMP thread   0 of   7 assigned to MPI process      0 of      0
 OpenMP thread   1 of   7 assigned to MPI process      0 of      0
 OpenMP thread   2 of   7 assigned to MPI process      0 of      0
 OpenMP thread   3 of   7 assigned to MPI process      0 of      0
 OpenMP thread   4 of   7 assigned to MPI process      0 of      0
 OpenMP thread   7 of   7 assigned to MPI process      0 of      0
 OpenMP thread   6 of   7 assigned to MPI process      0 of      0
 OpenMP thread   5 of   7 assigned to MPI process      0 of      0
 Completed Initialization Step  1
 Completed Initialization Step  2
 Completed Initialization Step  3
 Completed Initialization Step  4

Запуск через mpirun -np 2 a.out загружает только два ядра, хотя видно, что openmp тоже активен

 Mesh      1 is assigned to MPI Process      0
 Mesh      2 is assigned to MPI Process      1
 OpenMP thread   4 of   7 assigned to MPI process      0 of      1
 OpenMP thread   7 of   7 assigned to MPI process      0 of      1
 OpenMP thread   6 of   7 assigned to MPI process      0 of      1
 OpenMP thread   5 of   7 assigned to MPI process      0 of      1
 OpenMP thread   3 of   7 assigned to MPI process      0 of      1
 OpenMP thread   2 of   7 assigned to MPI process      0 of      1
 OpenMP thread   1 of   7 assigned to MPI process      0 of      1
 OpenMP thread   0 of   7 assigned to MPI process      0 of      1
 OpenMP thread   4 of   7 assigned to MPI process      1 of      1
 OpenMP thread   7 of   7 assigned to MPI process      1 of      1
 OpenMP thread   6 of   7 assigned to MPI process      1 of      1
 OpenMP thread   5 of   7 assigned to MPI process      1 of      1
 OpenMP thread   3 of   7 assigned to MPI process      1 of      1
 OpenMP thread   2 of   7 assigned to MPI process      1 of      1
 OpenMP thread   1 of   7 assigned to MPI process      1 of      1
 OpenMP thread   0 of   7 assigned to MPI process      1 of      1
 Completed Initialization Step  1
 Completed Initialization Step  2
 Completed Initialization Step  3
 Completed Initialization Step  4

mpirun -np 1 a.out загружает, соответственно, только одно ядро, при 8-ми расчётных потоках.

mpirun -np 1 fds plume_s1.fds  
 Mesh      1 is assigned to MPI Process      0
 Mesh      2 is assigned to MPI Process      0
 OpenMP thread   4 of   7 assigned to MPI process      0 of      0
 OpenMP thread   7 of   7 assigned to MPI process      0 of      0
 OpenMP thread   6 of   7 assigned to MPI process      0 of      0
 OpenMP thread   5 of   7 assigned to MPI process      0 of      0
 OpenMP thread   3 of   7 assigned to MPI process      0 of      0
 OpenMP thread   2 of   7 assigned to MPI process      0 of      0
 OpenMP thread   1 of   7 assigned to MPI process      0 of      0
 OpenMP thread   0 of   7 assigned to MPI process      0 of      0
 Completed Initialization Step  1
 Completed Initialization Step  2
 Completed Initialization Step  3
 Completed Initialization Step  4

Исходная версия Jurik_Phys, :

Буквально вчера обратил внимание.

Условие: а.out внтри себя использует дополнительно распараллеливание через openmp, а распараллеливание через openmpi возможно на 2 процесса т.к., в задаче две расчётные сетки.

Так вот ./a.out загружает все 8 ядер процессора.

 Mesh      1 is assigned to MPI Process      0
 Mesh      2 is assigned to MPI Process      0
 OpenMP thread   0 of   7 assigned to MPI process      0 of      0
 OpenMP thread   1 of   7 assigned to MPI process      0 of      0
 OpenMP thread   2 of   7 assigned to MPI process      0 of      0
 OpenMP thread   3 of   7 assigned to MPI process      0 of      0
 OpenMP thread   4 of   7 assigned to MPI process      0 of      0
 OpenMP thread   7 of   7 assigned to MPI process      0 of      0
 OpenMP thread   6 of   7 assigned to MPI process      0 of      0
 OpenMP thread   5 of   7 assigned to MPI process      0 of      0
 Completed Initialization Step  1
 Completed Initialization Step  2
 Completed Initialization Step  3
 Completed Initialization Step  4

Запуск через mpirun -np 2 a.out загружает только два ядра, хотя видно, что openmp тоже активен

 Mesh      1 is assigned to MPI Process      0
 Mesh      2 is assigned to MPI Process      1
 OpenMP thread   4 of   7 assigned to MPI process      0 of      1
 OpenMP thread   7 of   7 assigned to MPI process      0 of      1
 OpenMP thread   6 of   7 assigned to MPI process      0 of      1
 OpenMP thread   5 of   7 assigned to MPI process      0 of      1
 OpenMP thread   3 of   7 assigned to MPI process      0 of      1
 OpenMP thread   2 of   7 assigned to MPI process      0 of      1
 OpenMP thread   1 of   7 assigned to MPI process      0 of      1
 OpenMP thread   0 of   7 assigned to MPI process      0 of      1
 OpenMP thread   4 of   7 assigned to MPI process      1 of      1
 OpenMP thread   7 of   7 assigned to MPI process      1 of      1
 OpenMP thread   6 of   7 assigned to MPI process      1 of      1
 OpenMP thread   5 of   7 assigned to MPI process      1 of      1
 OpenMP thread   3 of   7 assigned to MPI process      1 of      1
 OpenMP thread   2 of   7 assigned to MPI process      1 of      1
 OpenMP thread   1 of   7 assigned to MPI process      1 of      1
 OpenMP thread   0 of   7 assigned to MPI process      1 of      1
 Completed Initialization Step  1
 Completed Initialization Step  2
 Completed Initialization Step  3
 Completed Initialization Step  4