[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [mpi-21] F90 bindings




I'm no longer in touch with the compiler issues that relate to Fortran type checking but I would imagine that there are ways for a compiler to deal with the inevitable explosion of function profiles/signatures in this strictly types language. Surely MPI cannot be the only standard that has this challenge in Fortran 90.


Sincerely,
Steven

--
Dr. Steven Ericsson-Zenith
Institute for Advanced Science & Engineering
http://iase.info
http://senses.info




On Dec 7, 2007, at 11:57 AM, Jeff Squyres wrote:

On Dec 7, 2007, at 2:32 PM, Steven Ericsson-Zenith wrote:

I fear the by virtue of the beast Fortran will have to live with the large number of function profiles. 7 million, however, is surprisingly large. I assume that this is for all the permutations of type.

Yes -- mainly because of the collectives that have 2 choice buffers. The math goes something like this:


- 15 fortran intrinsic types
- max of 7 array dimensions
- 50 MPI functions with 1 choice buffer
- 25 MPI functions with 2 choice buffers

Total = (one choice buffer combos) + (two choice buffer combos)
     = (15 * 7 * 50) + (15 * 7 * 25)^2
     = 5,250 + 6,890,625
     = 6,895,875

Yoinks.  :-(

If that is the case, then it simply is what it is.

Unfortunately, it's not tenable. There's no F90 compiler that can handle ~7M functions in a single module (not even close). Even if they did, I can't imagine trying to compile a large F90 app that has "use mpi" all over the place -- the compiler would continually have to load ~7M signatures from the mpi module file, search to find the desired signature, etc.


In short: 7M signatures is just [way] too many.

Sun's F90 compiler has a "ignore the type" attribute similar to what was proposed for NEC. Others may, too (I'm not a Fortran expert). But it doesn't seem good form that the MPI Standard *requires* a vendor-specific addition to the F90 compiler in order to work...

--
Jeff Squyres
Cisco Systems