1
votes

This piece of code was working fine before with mpi

#include <mpi.h>
#include <iostream>

using namespace std;

int id, p;

int main(int argc, char* argv[])
{
    MPI_Init(&argc, &argv);

    MPI_Comm_rank(MPI_COMM_WORLD, &id);
    MPI_Comm_size(MPI_COMM_WORLD, &p);

    cout << "Processor " << id << " of " << p << endl;
    cout.flush();

    MPI_Barrier(MPI_COMM_WORLD);
    if (id == 0) cout << "Every process has got to this point now!" << endl;

    MPI_Finalize();
}

Giving the output:

Processor 0 of 4
Processor 1 of 4
Processor 2 of 4
Processor 3 of 4
Every process has got to this point now!

When run on 4 cores with the command mpiexec -n 4 ${executable filename}$

I restarted my laptop (i'm not sure if this is the cause) and ran the same code and it outputs on one core:

Processor 0 of 1
Every process has got to this point now!
Processor 0 of 1
Every process has got to this point now!
Processor 0 of 1
Every process has got to this point now!
Processor 0 of 1
Every process has got to this point now!

I'm using the microsoft mpi and the project configurations haven't changed. I'm not really sure what to do about this. I also installed intel parallel studio and integrated it with visual studio before restarting. But i'm still compiling with Visual c++ (Same configurations as of when it was working fine)

1
That typically occurs when your app is using a MPI library (e.g. MS MPI) but you use mpiexec from an other MPI library (e.g. Intel MPI) - Gilles Gouaillardet

1 Answers

0
votes

The easy fix was to uninstall intel parallel studio