Windows 10 64bit, Cygwin64, openmpi 1.10.7-1 (dev, c, c++, fortran), GCC 6.3.0-2 (core, gcc, g++, fortran)

I am compiling the standard "hello_c.c" example with mgicc:

$ mpicc -g hello_c.c -o hello_c

The showme:

gcc -g hello_c.c -o hello_c -fexceptions -L/usr/lib -lmpi -lopen-rte -lopen-pal -lm -lgdi32

This successfully creates hello_c.exe. When I run it directly, it performs as expected (The first time run brings up a Windows Firewall dialog and I click Accept):

$ ./hello_c
Hello World! I am 0 of 1, (Open MPI v1.10.7, package: Open MPI marco@GE-MATZERI-EU Distribution, ident: 1.10.7, repo rev: v1.10.6-48-g5e373bf, May 16, 2017, 129)

However, when I run it using mpiexec:

$ mpiexec -n 4 ./hello_c

$ ^C

Nothing is displayed and I have to ^C out. If I insert a puts("Start") just before the call to MPI_Init(&argc, &argv), and a puts("MPI_Init done.") just after, mpiexec will print "Start" for each process (4 times for the above example) and then freeze. It is never returning from the call to MPI_Init(...).

This is a freshly installed Cygwin64 and other non-mpi programs work fine. Can anyone give me an idea of what is going on?

hello_c.c
---------------
#include <stdio.h>
#include "mpi.h"

int main(int argc, char* argv[])
{
  int rank, size, len;
  char version[MPI_MAX_LIBRARY_VERSION_STRING];

  MPI_Init(&argc, &argv);

  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Comm_size(MPI_COMM_WORLD, &size);
  MPI_Get_library_version(version, &len);
  printf("Hello World! I am %d of %d, (%s, %d)\n", rank, size, version, len);

  MPI_Finalize();

  return 0;
}
---------------

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

Reply via email to