[OMPI users] Cygwin64 mpiexec freezes
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 #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
[OMPI users] Errors when compiled with Cygwin MinGW gcc
Windows 10 64bit, Cygwin64, openmpi 1.10.7-1 (dev, c, c++, fortran), x86_64-w64-mingw32-gcc 6.3.0-1 (core, gcc, g++, fortran) I am compiling the standard "hello_c.c" example with mgicc configured to use the Cygwin installed MinGW gcc compiler: $ export OMPI_CC=x86_64-w64-mingw32-gcc $ mpicc -idirafter /cygdrive/c/cygwin64/usr/include hello_c.c -o hello_c For some unknown reason, I have to manually include the "usr/include" directory to pick up the "mpi.h" header, and it must be searched after the standard header directories to avoid "time_t" typedef conflicts. The showme: x86_64-w64-mingw32-gcc -idirafter /cygdrive/c/cygwin64/usr/include hello_c.c -o hello_c -fexceptions -L/usr/lib -lmpi -lopen-rte -lopen-pal -lm -lgdi32 This successfully creates hello_c.exe. Running it either directly or with mpiexec displays the following errors for each process: $ ./hello_c 1 [main] hello_c 18116 child_copy: cygheap read copy failed, 0x180307408..0x180319318, done 0, windows pid 18116, Win32 error 6 112 [main] hello_c 18116 D:\mpi\examples\hello_c.exe: *** fatal error - ccalloc would have returned NULL $ mpiexec -n 4 hello_c 1 [main] hello_c 15660 child_copy: cygheap read copy failed, 0x180307408..0x1803216B0, done 0, windows pid 15660, Win32 error 6 182 [main] hello_c 15660 D:\mpi\examples\hello_c.exe: *** fatal error - ccalloc would have returned NULL 2 [main] hello_c 7852 child_copy: cygheap read copy failed, 0x180307408..0x18031F588, done 0, windows pid 7852, Win32 error 6 223 [main] hello_c 7852 D:\mpi\examples\hello_c.exe: *** fatal error - ccalloc would have returned NULL 1 [main] hello_c 16464 child_copy: cygheap read copy failed, 0x180307408..0x1803208E0, done 0, windows pid 16464, Win32 error 6 215 [main] hello_c 16464 D:\mpi\examples\hello_c.exe: *** fatal error - ccalloc would have returned NULL 2 [main] hello_c 17184 child_copy: cygheap read copy failed, 0x180307408..0x180322710, done 0, windows pid 17184, Win32 error 6 281 [main] hello_c 17184 D:\mpi\examples\hello_c.exe: *** fatal error - ccalloc would have returned NULL Does anyone have any ideas as to what is causing these errors. Can an open mpi application even be compiled with the Cygwin installed MinGW gcc compiler? hello_c.c --- #include #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
Re: [OMPI users] Errors when compiled with Cygwin MinGW gcc
On 09/08/2017 8:16 AM, Marco Atzeri wrote: please reply in the mailing list Oops! My apologies. I'm not used to a mailing list without the reply-to set to the mailing list. Can a version of open mpi be built using x86_64-w64-mingw32-gcc so that it will work with code compiled with x86_64-w64-mingw32-gcc? Not that I am aware Now that's a problem. Many clients insist that, while you can use Cygwin to develop and debug, you can only use a MinGW production version to avoid license entanglements (Yes, I know that there is an explicit exception to deal with this but the client lawyers just don't care). I strongly suggest that, to make open-mpi useful in all arenas, both Cygwin and Cygwin-MinGW versions be built and distributed through Cygwin(64) to settle our persnickety clients (the majority ). Thank you for your help with my questions. ___ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users
[OMPI users] OpenMPI v3.0 on Cygwin
Can OpenMPI v3.0 be compiled for Cygwin64 on Windows 10? Using: ./congifure --prefix=/usr/local [blah, blah... Apparently successful (At least it doesn't say there's an error)] make -j 12 all I'm getting a slew of compiler errors about redefinitions between: /usr/include/w32api/psdk_inc/_ip_types.h or /usr/include/w32api/winsock2.h and/usr/include/netdb.h or /usr/include/sys/socket.h Are there magic variables, definitions, or switches for a Cygwin build I'm missing? ___ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users
Re: [OMPI users] OpenMPI v3.0 on Cygwin
On 09/27/2017 4:36 AM, Marco Atzeri wrote: After I finish on 2.1.2 I will look on 3.0. Thank you for your response. I am looking forward to a Cygwin release. If you could send me some guidelines as to the preferred manner of doing this as was done with previous versions, I could work on it myself. The 1.10 Cygport version compiles and packages just fine so I'll look at what was done to that for now and try to translate it to v3.0. @Jeffrey A Cummings: OpenMPI has abandoned *NATIVE* windows support (*.lib for compilers like MSVC, etc.) and not Cygwin, though a v2.* release has been slow. The msmpi package has never fully supported the MPI specification (or even come close) and has been long (and silently) abandoned by MS as people have preferred other fully compliant implementations. ___ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users
Re: [OMPI users] OpenMPI v3.0 on Cygwin
On 09/27/2017 3:04 PM, Jeffrey A Cummings wrote: The MS-MPI developers disagree with your statement below and claim to be actively working on MPI-3.0 compliance, with an expected new version release about every six month. They can disagree as much as they want. I've spent over 30 years doing contracts for and associated with MS and am very familiar with their policy of what they claim vs. what they do. Check out: http://mpi-forum.org/slides/2014/11/mpi3-impl-status-Nov14.pdf for where msmpi was in 2014 when they were claiming the same things. The latest version of msmpi (v8.1.12438) still only provides minimal support for MPI specification v2.0. Understand, I'm no MS basher; Windows is still the most likely development environment in the industry and must be respected. This is why I always argue that it is a mistake not to distribute native MS versions of packages no matter what level of popular support there is. Allowing MS to restrict the level of support on the Windows platform to only the avenues they wish developers to use is a huge restriction for the evolution of a specification and a terrible problem for those of us who must work cross-platform. However, my original point was about the Cygwin version of openmpi and not any native Windows version. Looking forward to that. :) ___ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users