Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] openmpi-1.9a1r27674 on Cygwin-1.7.17
From: Damien (damien_at_[hidden])
Date: 2012-12-18 11:00:10


Proper Windows support of OpenMPI is likely around 20 hours a week. That
can be maintained by a small group, but it's probably too much for one
person unless they're working in Windows HPC every day. When I posted a
couple of weeks back, there were three people (maybe two?) who responded
that they used OpenMPI on Windows regularly, other than me.

I hate to say it, but against MPICH and the Microsoft and Intel MPICH
versions with probably a few thousand regular users, I think OpenMPI on
native Windows is dead in the water.

Damien

On 18/12/2012 8:06 AM, JR Cary wrote:
> On 12/18/12 6:29 AM, Jeff Squyres wrote:
>> This brings up the point again, however, of Windows support.
>>
>> Open MPI recently lost its only Windows developer (he moved on to
>> non-HPC things). This has been discussed on the lists a few times (I
>> honestly don't remember if it was this users list or the devel list),
>> and there hasn't really been anyone who volunteered their time to
>> support Open MPI on Windows.
>
> Definitely this list.
>
>> We're seriously considering removing all Windows support for 1.7 and
>> beyond (keep in mind that the native Windows support on the SVN trunk
>> and v1.7 branch is very, very out of date and needs some serious work
>> to get working again -- the last working native Windows version is on
>> the v1.6 branch).
>
> Sounds appropriate. My conversations with Microsoft
> went no where. Spoke last night with another good
> friend there who worked in their HPC unit when that
> existed. Microsoft has their own implementation, and
> they see no need for another.
>
> So, IMO, OpenMPI would have to turn to a different
> group for support. E.g., Microsoft compatible HPC
> application vendors. And for that one would need a
> compelling case of being better in, e.g., performance.
>
> Can this case be made?
>
> Perhaps there is another way?
>
> John
>
>
>>
>>
>>
>>
>> On Dec 18, 2012, at 3:04 AM, Siegmar Gross wrote:
>>
>>> Hi,
>>>
>>> I tried to install openmpi-1.9a1r27674 on Cygwin-1.7.17 and
>>> got the following error (gcc-4.5.3).
>>>
>>> ...
>>> CC path.lo
>>> ../../../openmpi-1.9a1r27668/opal/util/path.c: In function
>>> 'opal_path_df':
>>> ../../../openmpi-1.9a1r27668/opal/util/path.c:578:18: error:
>>> 'buf' undeclared (first use in this function)
>>> ../../../openmpi-1.9a1r27668/opal/util/path.c:578:18: note:
>>> each undeclared identifier is reported only once for each
>>> function it appears in
>>> Makefile:1669: recipe for target `path.lo' failed
>>> make[3]: *** [path.lo] Error 1
>>> ...
>>>
>>>
>>> The reason is that "buf" is only declared for some operating
>>> systems. I added "defined(__CYGWIN__)" in some places and
>>> was able to compile "path.c".
>>>
>>>
>>> hermes util 41 diff path.c path.c.orig
>>> 452c452
>>> < #elif defined(__linux__) || defined(__CYGWIN__) ||
>>> defined (__BSD) || (defined(__APPLE__) && defined(__MACH__))
>>> ---
>>>> #elif defined(__linux__) || defined (__BSD) ||
>>> (defined(__APPLE__) && defined(__MACH__))
>>> 480c480
>>> < #elif defined(__linux__) || defined(__CYGWIN__) ||
>>> defined (__BSD) || (defined(__APPLE__) && defined(__MACH__))
>>> ---
>>>> #elif defined(__linux__) || defined (__BSD) ||
>>> (defined(__APPLE__) && defined(__MACH__))
>>> 517c517
>>> < #elif defined(__linux__) || defined(__CYGWIN__)
>>> ---
>>>> #elif defined(__linux__)
>>> 549c549
>>> < #elif defined(__linux__) || defined(__CYGWIN__) ||
>>> defined (__BSD) || \
>>> ---
>>>> #elif defined(__linux__) || defined (__BSD) || \
>>> 562c562
>>> < #elif defined(__linux__) || defined (__CYGWIN__) ||
>>> defined (__BSD) || \
>>> ---
>>>> #elif defined(__linux__) || defined (__BSD) || \
>>> hermes util 42
>>>
>>>
>>> Searching for "__linux__" delivered some more files which
>>> must possibly be adapted.
>>>
>>> opal/config/opal_check_os_flavors.m4
>>> opal/mca/event/libevent2019/libevent/buffer.c
>>>
>>>
>>> I assume that the following files do not need any changes
>>> because they are special for Linux or for features which
>>> are not important/available for Cygwin.
>>>
>>>
>>> configure: { $as_echo "$as_me:${as_lineno-$LINENO}:
>>> checking __linux__" >&5
>>> configure:$as_echo_n "checking __linux__... " >&6; }
>>> configure:#ifndef __linux__
>>> configure: error: this isnt __linux__
>>>
>>> test/util/opal_path_nfs.c
>>>
>>> opal/asm/base/MIPS.asm:#ifdef __linux__
>>> opal/asm/generated/atomic-mips64el.s:#ifdef __linux__
>>> opal/asm/generated/atomic-mips64-linux.s:#ifdef __linux__
>>> opal/asm/generated/atomic-mips-irix.s:#ifdef __linux__
>>> opal/asm/generated/atomic-mips-linux.s:#ifdef __linux__
>>>
>>> ompi/mca/common/verbs/common_verbs_basics.c:#if defined(__linux__)
>>> opal/include/opal/sys/cma.h:#ifdef __linux__
>>> opal/mca/memory/linux/arena.c:#ifdef __linux__
>>>
>>> ompi/mca/io/romio/romio/configure: #ifdef __linux__
>>> ompi/mca/io/romio/romio/configure.in: #ifdef __linux__
>>> opal/include/opal/sys/mips/atomic.h:#ifdef __linux__
>>> opal/include/opal/sys/mips/atomic.h:#ifdef __linux__
>>> opal/include/opal/sys/mips/atomic.h:#ifdef __linux__
>>> opal/mca/event/libevent2019/libevent/arc4random.c:#ifdef __linux__
>>>
>>> ompi/mca/io/romio/romio/adio/ad_lustre/ad_lustre.h:#ifdef __linux__
>>> ompi/mca/io/romio/romio/adio/ad_lustre/ad_lustre.h:#endif /*
>>> __linux__ */
>>>
>>>
>>> Can somebody add __Cygwin__ to all necessary files? Now I get
>>> the following error.
>>>
>>> ...
>>> Making all in mca/if/windows
>>> make[2]: Entering directory
>>> `/home/Admin/openmpi/openmpi-1.9-Cygwin.x86.32_gcc/opal/mca/if/windows'
>>> CC opal_if_windows.lo
>>> ../../../../../openmpi-1.9a1r27674/opal/mca/if/windows/opal_if_windows.c:
>>>
>>> In function 'if_windows_open':
>>> ../../../../../openmpi-1.9a1r27674/opal/mca/if/windows/opal_if_windows.c:58:5:
>>>
>>> error: 'SOCKET' undeclared (first use in this function)
>>> ../../../../../openmpi-1.9a1r27674/opal/mca/if/windows/opal_if_windows.c:58:5:
>>>
>>> note: each undeclared identifier is reported only once for each
>>> function
>>> it appears in
>>> ...
>>>
>>>
>>> Is it necessary to use windows sockets directly or is it possible
>>> to use something similar to Linux sockets? Cygwin supports sockets
>>> (based on Windows sockets as far as I know) and very often uses
>>> similar interfaces as Linux. Which file is responsible for the
>>> selection of "opal_if_windows.c"?
>>>
>>> I added the following constants to /usr/include/cygwin/shm.h before
>>> I started to build openmpi-1.9a1r27674.
>>>
>>> diff /usr/include/cygwin/shm.h /usr/include/cygwin/shm.h.orig
>>> 29,34d28
>>> < /* Permission definitions */
>>> < #define SHM_R 0400 /* read permission */
>>> < #define SHM_W 0200 /* write permission */
>>> <
>>>
>>> I used the following commands to configure Open MPI.
>>> "/usr/local/jdk1.7.0" is a link to my Java installation
>>> on Windows 7.
>>>
>>> cd /usr/local
>>> ln -s /cygdrive/c/Program\ Files\ \(x86\)/jdk1.7.0 jdk1.7.0
>>>
>>>
>>> ../openmpi-1.9a1r27674/configure --prefix=/usr/local/openmpi-1.9 \
>>> --with-jdk-bindir=/usr/local/jdk1.7.0/bin \
>>> --with-jdk-headers=/usr/local/jdk1.7.0/include \
>>> JAVA_HOME=/usr/local/jdk1.7.0 \
>>> LDFLAGS="-m32 -Wl,--export-all-symbols -no-undefined" \
>>> CC="gcc" CXX="g++" FC="gfortran" \
>>> CFLAGS="-m32" CXXFLAGS="-m32" FCFLAGS="-m32" \
>>> CPP="cpp" CXXCPP="cpp" \
>>> CPPFLAGS="" CXXCPPFLAGS="" \
>>> C_INCL_PATH="" C_INCLUDE_PATH="" CPLUS_INCLUDE_PATH="" \
>>> OBJC_INCLUDE_PATH="" OPENMPI_HOME="" \
>>> --enable-cxx-exceptions \
>>> --enable-mpi-java \
>>> --enable-heterogeneous \
>>> --enable-opal-multi-threads \
>>> --enable-mpi-thread-multiple \
>>> --with-threads=posix \
>>> --with-hwloc=internal \
>>> --without-verbs \
>>> --without-udapl \
>>> --without-sctp \
>>> --with-wrapper-cflags=-m32 \
>>> --enable-debug \
>>> --disable-mca-dso \
>>> --without-cs-fs \
>>> --enable-contrib-no-build=vt,libompitrace \
>>> --enable-mca-no-build=memory_mallopt,paffinity,installdirs-windows,timer-windows
>>> \
>>> |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV
>>>
>>> It would be great, if I could get a working Open MPI version with
>>> Java interface on Cygwin. Thank you very much for any help in advance.
>>>
>>>
>>> Kind regards
>>>
>>> Siegmar
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users