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 错误:无法分配启动块的主要内容,如果未能解决你的问题,请参考以下文章

如何解决python包的静态TLS块错误中无法分配内存

为啥我会收到使用 MPI 屏障 [c++] 的致命错误

如何检测我的应用程序是不是由 MS MPI mpiexec 启动?

通信器 MPI_COMM_WORLD 上的 MPI Scatter 错误

尝试排除进程级别0时出现MPI_Group_excl致命错误.c ++

分段错误:C++ 中的结构序列化和 MPI 数据传输