Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] MPI_REAL16
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-06-19 13:43:59


Greetings David.

I think we should have a more explicit note about MPI_REAL16 support
in the README.

This issue has come up before; see https://svn.open-mpi.org/trac/ompi/ticket/1603
.

If you read through that ticket, you'll see that I was unable to find
a C equivalent type for REAL*16 with the Intel compilers. This is
what blocked us from making that work. :-\ But then again, I haven't
tried the test codes on that ticket with the Intel 11.0 compilers to
see what would happen (last tests were with 10.something). It *seems*
to be a compiler issue, but I confess that we never had a high enough
priority to follow through and figure it out completely.

If you have an Intel support contract, you might want to take some of
the final observations on #1603 (e.g., the test codes I put near the
end) and see what Intel has to say about it. Perhaps we're doing
something wrong...?

I hate to pass the buck here, but I unfortunately have a whole pile of
higher-priority items that I need to work on...

On Jun 19, 2009, at 1:32 PM, David Robertson wrote:

> Hi all,
>
> I have compiled Open MPI 1.3.2 with Intel Fortran and C/C++ 11.0
> compilers. Fortran Real*16 seems to be working except for
> MPI_Allreduce.
> I have attached a simple program to show what I mean. I am not an MPI
> programmer but I work for one and he actually wrote the attached
> program. The program sets a variable to 1 on all processes then sums.
>
> Running with real*8 (comment #define REAL16 in quad_test.F) produces
> the
> expected results:
>
> Number of Nodes = 4
>
> ALLREDUCE sum = 4.00000000000000
> ALLGATHER sum = 4.00000000000000
> ISEND/IRECV sum = 4.00000000000000
>
> Node = 0 Value = 1.00000000000000
> Node = 2 Value = 1.00000000000000
> Node = 3 Value = 1.00000000000000
> Node = 1 Value = 1.00000000000000
>
> Running with real*16 produces the following:
>
> Number of Nodes = 4
>
> ALLREDUCE sum = 1.00000000000000000000000000000000
> ALLGATHER sum = 4.00000000000000000000000000000000
> ISEND/IRECV sum = 4.00000000000000000000000000000000
> Node = 0 Value = 1.00000000000000000000000000000000
> Node = 1 Value = 1.00000000000000000000000000000000
> Node = 2 Value = 1.00000000000000000000000000000000
> Node = 3 Value = 1.00000000000000000000000000000000
>
> As I mentioned, I'm not a parallel programmer but I would expect the
> similar results from identical operations on real*8 and real*16
> variables.
>
> NOTE: I get the same behavior with MPICH and MPICH2.
>

-- 
Jeff Squyres
Cisco Systems