On Oct 31, 2013, at 6:03 PM, Jeff Hammond <jeff.science_at_[hidden]> 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.
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/