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?