ms mpi 错误:无法分配启动块
Posted
技术标签:
【中文标题】ms mpi 错误:无法分配启动块【英文标题】:ms mpi error: unable to allocate launching block 【发布时间】:2016-10-15 09:49:16 【问题描述】:我在 VS 2015 中使用 ms mpi 创建了简单的控制台程序。
#include <stdio.h>
#include <mpi.h>
#include <stdlib.h>
int main(int argc, char **argv)
int rank=0, size=0;
MPI_Init(&argc, &argv); /* starts MPI */
MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* get current process id */
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (rank == 0)
char helloStr[] = "Hello World";
// MPI_Send(helloStr, _countof(helloStr), MPI_CHAR, 1, 0, MPI_COMM_WORLD);
else if (rank == 1)
char helloStr[12];
MPI_Recv(helloStr, _countof(helloStr), MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Rank 1 received string %s from Rank 0\n", helloStr);
printf("hello from proccess rank %d from size %d\n",rank,size);
MPI_Finalize();
return 0;
这个程序编译并执行。但是如果使用 > mpiexec -n 2 myprog.exe,我会得到错误:无法分配启动块。
【问题讨论】:
我解决了这个问题。我的操作系统 windows 7 ms mpi v. 7.1 。我删除 ms-mpi 并安装 ms-mpi v 6,以及所有工作。 如果您的可执行文件的路径中有空格和非拉丁字符,也会出现这种情况 【参考方案1】:由于您使用的是VS2015,我猜原因是您的用户名包含非ASCII字符。
尝试在仅包含 ASCII 字符的路径中运行 mpiexec。
【讨论】:
以上是关于ms mpi 错误:无法分配启动块的主要内容,如果未能解决你的问题,请参考以下文章
如何检测我的应用程序是不是由 MS MPI mpiexec 启动?
通信器 MPI_COMM_WORLD 上的 MPI Scatter 错误