Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Windows: MPI_Allreduce() crashes when using MPI_DOUBLE_PRECISION
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2011-05-12 10:22:28


Shiqing --

Got any ideas here? Are you able to run this sample program with mpif.h or use mpi on Windows?

On May 11, 2011, at 12:29 AM, hi wrote:

> Hi Jeff,
>
>> Can you send the info listed on the help page?
>
> From the HELP page...
>
> ***For run-time problems:
> 1) Check the FAQ first. Really. This can save you a lot of time; many
> common problems and solutions are listed there.
> I couldn't find reference in FAQ.
>
> 2) The version of Open MPI that you're using.
> I am using pre-built openmpi-1.5.3 64-bit and 32-bit binaries on Window 7
> I also tried with locally built openmpi-1.5.2 using Visual Studio 2008
> 32-bit compilers
> I tried various compilers: VS-9 32-bit and VS-10 64-bit and
> corresponding intel ifort compiler.
>
> 3) The config.log file from the top-level Open MPI directory, if
> available (please compress!).
> Don't have.
>
> 4) The output of the "ompi_info --all" command from the node where
> you're invoking mpirun.
> see output of pre-built openmpi-1.5.3_x64/bin/ompi_info --all" in attachments.
>
> 5) If running on more than one node --
> I am running test program on single none.
>
> 6) A detailed description of what is failing.
> Already described in this post.
>
> 7) Please include information about your network:
> As I am running test program on local and single machine, this might
> not be required.
>
>> You forgot ierr in the call to MPI_Finalize. You also paired DOUBLE_PRECISION data with MPI_INTEGER in the call to allreduce. And you mixed sndbuf and rcvbuf in the call to allreduce, meaning that when your print rcvbuf afterwards, it'll always still be 0.
>
> As I am not Fortran programmer, this is my mistake !!!
>
>
>> program Test_MPI
>> use mpi
>> implicit none
>>
>> DOUBLE PRECISION rcvbuf(5), sndbuf(5)
>> INTEGER nproc, rank, ierr, n, i, ret
>>
>> n = 5
>> do i = 1, n
>> sndbuf(i) = 2.0
>> rcvbuf(i) = 0.0
>> end do
>>
>> call MPI_INIT(ierr)
>> call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
>> call MPI_COMM_SIZE(MPI_COMM_WORLD, nproc, ierr)
>> write(*,*) "size=", nproc, ", rank=", rank
>> write(*,*) "start --, rcvbuf=", rcvbuf
>> CALL MPI_ALLREDUCE(sndbuf, rcvbuf, n,
>> & MPI_DOUBLE_PRECISION, MPI_SUM, MPI_COMM_WORLD, ierr)
>> write(*,*) "end --, rcvbuf=", rcvbuf
>>
>> CALL MPI_Finalize(ierr)
>> end
>>
>> (you could use "include 'mpif.h'", too -- I tried both)
>>
>> This program works fine for me.
>
> I am observing same crash, as described in this thread (when executing
> as "mpirun -np 2 mar_f_dp.exe"), even with above correct and simple
> test program. I commented 'use mpi' as it gave me "Error in compiled
> module file" error, so I used 'include "mpif.h"' statement (see
> attachement).
>
> It seems that Windows specific issue, (I could run this test program
> on Linux with openmpi-1.5.1).
>
> Can anybody try this test program on Windows?
>
> Thank you in advance.
> -Hiral
> <ompi_info_openmpi-1.5.3_x64.txt><mar_f_dp.f>

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/