ошибка ms mpi: не удалось выделить блок запуска

#c #visual-c #mpi #ms-mpi

#c #visual-c #mpi #ms-mpi

Вопрос:

Я создал простую консольную программу в 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(amp;argc, amp;argv); /* starts MPI */
    MPI_Comm_rank(MPI_COMM_WORLD, amp;rank);   /* get current process id */
    MPI_Comm_size(MPI_COMM_WORLD, amp;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 0n", helloStr);
    }
    printf("hello from proccess rank %d from size %dn",rank,size);
    MPI_Finalize();
    return 0;
}
 

Эта программа компилируется и выполняется. Но если использовать> mpiexec -n 2 myprog.exe , я получаю сообщение об ошибке: не удалось выделить блок запуска.

Комментарии:

1. Я решаю эту проблему. Моя ОС windows 7 ms mpi v. 7.1 . Я удаляю ms-mpi и устанавливаю ms-mpi v 6, и все работает.

2. Это также произойдет, если у вас есть пробелы и нелатинские символы в пути к вашему исполняемому файлу

Ответ №1:

Поскольку вы используете VS2015, я предполагаю, что причина в том, что ваше имя пользователя содержит символы, отличные от ASCII.

Попробуйте запустить mpiexec по пути, который содержит только символы ASCII.