0

我在哪里可以在 C 中指定或查看 MPI 程序中的内核数。换句话说,我改进了一个用 c 编写的程序(MPI fox 算法),它运行 2 个内核,但实际上我想更改它以便运行 4 个内核...该程序使用笛卡尔拓扑。

4

1 回答 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 回答