Simple MPI program won't execute and is put to sleep mode (C++)

145 views Asked by At

I am trying to run this simple MPI program with the mpic++ compiler.

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

int main(int argc, char** argv) {
  // Initialize the MPI environment
  MPI_Init(&argc, &argv);
  
  // Get the number of processes
  int world_size;
  MPI_Comm_size(MPI_COMM_WORLD, &world_size);
  
  // Get the rank of the process
  int world_rank;
  MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
  
  // Get the name of the processor
  char processor_name[MPI_MAX_PROCESSOR_NAME];
  int name_len;
  MPI_Get_processor_name(processor_name, &name_len);
  
  // Print off a hello world message
  std::cout << "Hello world from processor" << processor_name << " rank" << world_rank << " out of " << world_size << "processors" << std::endl;

    // Finalize the MPI environment.
    MPI_Finalize();
}

I compile with mpic++ main.cpp and when I execute mpirun -n 2 ./a.out I get the warning no protocol specified which probably has to do with the fact that I am connected to a desktop via ssh and I am trying to run the program there, but most importantly, it does nothing.

If I type top there is no a.out listed and if I type ps aux | grep ./a.out I get:

angelos+ 1925884  0.0  0.0  44664  7652 pts/9    S+   18:54   0:00 mpirun -n 2 ./a.out

Is this a dynamic linking problem or what? Any suggestions?

0

There are 0 answers