Re: [MPI3 Fortran] MPI-2.1: Fortran 90 bindings
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 <[email protected]> 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: [email protected] HLRS, Uni Stuttgart http://www.hlrs.de/people/klimach Nobelstraße 19 phone: 0711-685 60300 70569 Stuttgart fax: 0711-685 65832
participants (1)
-
Harald Klimach