vs2019运行mpi如何改变进程数, 运行结果总是一个进程,进程号为0; 如何改变VS2019进程数? return 0;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2019运行mpi如何改变进程数, 运行结果总是一个进程,进程号为0; 如何改变VS2019进程数? return 0;相关的知识,希望对你有一定的参考价值。

运行显示只有一个进程,进程号为0;
int myid, numprocs;
int namelen;

char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);/*程序初始化*/
MPI_Comm_rank(MPI_COMM_WORLD, &myid);//得到当前进程号
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);//得到总的进程数
MPI_Get_processor_name(processor_name, &namelen);//得到机器名
fprintf(stderr, "Process %d of %d SAY HELLO TO MPI on %s\n", myid, numprocs, processor_name);
MPI_Finalize();//结束
return 0;

参考技术A 编译程序生成的.exe文件不要直接双击运行,也不要让vs2019帮你运行。
打开cmd命令行,或者powershell也行,一路cd进入.exe并行程序所在路径。
用命令mpiexec -n 8 xxx.exe来运行,并行.exe程序需要用mpiexec运行,其中的-n 8就是告诉mpiexec这次程序运行开8个进程。
mpiexec只要正确安装了mpich都会有,在cmd中用命令mpiexec --help可以查询更多用法。

如何指定在 R 中运行的 MPI 的核心数和节点数

【中文标题】如何指定在 R 中运行的 MPI 的核心数和节点数【英文标题】:How to specify both the number of cores and nodes for MPI running in R 【发布时间】:2018-04-20 09:34:02 【问题描述】:

我想使用 MPI 在 HPC 集群上并行运行 R。我了解包 snow 中的 makeCluster 函数可用于指定节点数。例如:makeCluster(2,type="MPI") 表示 2 个节点。如果不将类型指定为“MPI”,makeCluster(2) 将意味着单个节点上有 2 个内核。

有没有办法同时指定节点数和核心数?

如果指定类型为 MPI,每个节点默认使用多少个核心?

【问题讨论】:

【参考方案1】:

据我所知,snowparallel 软件包不会暴露这一点——因为它很快就会依赖于硬件。

不,如果您的 MPI 实现是 OpenMPI,那么您可以在服务器的 MPI 配置中指定它。有一个非常丰富的语法,hwloc 库应该为您提供硬件位置。

但最后的 R 只知道“工作节点的数量”,并将 howwhich 传递给您选择的特定实现。

【讨论】:

以上是关于vs2019运行mpi如何改变进程数, 运行结果总是一个进程,进程号为0; 如何改变VS2019进程数? return 0;的主要内容,如果未能解决你的问题,请参考以下文章

如何指定在 R 中运行的 MPI 的核心数和节点数

如何使用 Nvidia 多进程服务 (MPS) 运行多个非 MPI CUDA 应用程序?

MPI +线程并行化与仅MPI的优势(如果有的话)是什么?

win 10 在vs2017下对mpi的安装以及认识

使用 MPI 分配进程

如何改变VS2008命令窗口的背景颜色,就是我运行程序后弹出结果的那个?