On Oct 31, 2013, at 6:03 PM, Jeff Hammond <jeff.scie...@gmail.com> wrote:

> Why not just make your first level internal API equivalent to the MPI
> public API except for s/int/size_t/g and have the Fortran bindings
> drop directly into that?  Going through the C int-erface seems like a
> recipe for endless pain...


The design decision was made a long time ago to have the Fortran bindings call 
the C bindings so that we only had to have all the MPI API error checking code 
in one place (e.g., bad arguments and all that).

We *probably* could skip the C bindings:

- The Fortran bindings are in the middle of a (long term) revamp to be 
completely generated (vs. hand-coded).  This effort will take a while to 
complete, but will happen eventually.  The point here is that the generated 
code could certainly skip calling the C bindings (although it certainly is 
easier to call the C bindings -- that makes it more formulaic to generate).

- Not all the back-end APIs understand "large" integers.  For example, back-end 
MPI_INFO API calls only handle int, and would need to be updated.  The only 
point here is that there's more to do than just calling the back-end APIs -- 
even though the message-passing APIs use large integers internally, the 
non-sexy/non-message-passing stuff doesn't.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to