MPI核心数

时间:2012-11-24 20:24:24

标签: c mpi

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

1 个答案:

答案 0 :(得分: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环境变量来控制每个进程中的线程数,除非通过调用{在代码中覆盖该数字{1}}或明确的omp_set_num_threads()条款应用于num_threads区域。