我在哪里可以在 C 中指定或查看 MPI 程序中的内核数。换句话说,我改进了一个用 c 编写的程序(MPI fox 算法),它运行 2 个内核,但实际上我想更改它以便运行 4 个内核...该程序使用笛卡尔拓扑。
问问题
9335 次
1 回答
5
您为 SPMD/MPMD 启动器mpiexec
(或mpirun
)指定所需的进程数,通常为
mpiexec -n <# of processes> <other options> ./executable <arguments>
然后你可以通过查询世界通信器的大小来找出启动的 MPI 进程的数量:
int nprocs;
MPI_Comm_size(MPI_COMM_WOLRD, &nprocs);
printf("There are %d processes running in this MPI program\n", nprocs);
如果程序也是混合 MPI+OpenMP 代码,则可以通过设置OMP_NUM_THREADS
环境变量来控制每个进程中的线程数,除非该数字在代码中通过调用omp_set_num_threads()
或num_threads
应用到parallel
区域的显式子句而被覆盖。
于 2012-11-25T11:49:41.887 回答