[MPI3 Fortran] MPI-2.1: Fortran 90 bindings

Harald Klimach klimach at hlrs.de
Thu Mar 6 10:13:01 CST 2008


Dear Jeff,
I've been asked by Rainer Keller to follow this list. I've got some
trouble understanding your suggestion completely:

I don't know how those 15 intrinsic types are coming from. As far as I
know there are 5 intrinsic types in Fortran 90: integer, real, complex,
logical and character. Each of them can theoretically an unlimited
number of kinds. As far as I understand it MPI allows to use the
following:
integer*1, *2, *4, *8, *16
real*4, *8, *16
complex*4, *8, *16
logical
character
Which adds up to 13 in total. But most propably I'm missing the
remaining 2.

Could you please explain why assumed shape arrays are necessary in the
interfaces? I don't see the benefit we are gaining compared to the
assumed size. I attached a little example using an assumed size array.
I think the dimensional information of the assumed shape array is
discarded anyway, when it is handed over to the actual C-Function.

Which leaves us with 15*50 = 750 Interfaces for the functions with one
choice buffer.
The calculation for the 25 functions with two choice buffers isn't
clear to me.
Shouldn't it read (15 * 7)^2 * 25 = 275625?
If this is the case we would "only" have 15^2 * 25 = 5625 interfaces
for functions with two choice buffers.

Best regards,
Harald

Am Mittwoch den 05.03.2008
schrieb Jeff Squyres <jsquyres at cisco.com> um 21:15:

> The current MPI-2 F90 bindings are un-implementable because they  
> require almost 7 *million* interface functions: with 15 intrinsic  
> Fortran types, each with 7 possible dimensions, the current F90  
> interface *requires*:
> 
> - 50 MPI functions with one choice buffer: 15 * 7 * 50 = 5,250 functions
> - 25 MPI functions with two choice buffers: (15 * 7 * 25)^2 = 6.8M  
> functions
> - ...and a few hundred more MPI functions with no choice buffers
> 
> This is clearly broken.
> 
> An MPI-2.1-worthy solution could be to add a global statement saying  
> that MPI functions with two choice buffers are explicitly not included  
> in the F90 bindings.  F90 MPI applications can transparently fall back  
> to the F77 bindings (although they won't get the strong type checking,  
> etc.).  This idea therefore fits the requirement of not breaking any  
> existing MPI codes.
> 
> Specifically: if we remove the requirement to provide all MPI  
> functions with two choice buffers, 5,000+ F90 interface functions is  
> [a pain but] implementable.  I doubt that any current MPI  
> implementation provides more than the no-choice-buffers plus one- 
> choice-buffer functions anyway...
> 
> If this seems like a good idea, I can write a proper proposal for it.   
> Comments?
> 


-- 
Dipl.-Ing. Harald Klimach  email: klimach at hlrs.de
HLRS, Uni Stuttgart        http://www.hlrs.de/people/klimach
Nobelstraße 19             phone: 0711-685 60300
70569 Stuttgart            fax:   0711-685 65832
-------------- next part --------------
A non-text attachment was scrubbed...
Name: assumedShape.f90
Type: application/octet-stream
Size: 785 bytes
Desc: not available
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20080306/ee060c15/attachment-0001.obj>


More information about the mpiwg-fortran mailing list