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