| Richard E Maine 2006-01-10, 9:58 pm |
| Jan Vorbrüggen <jvorbrueggen-not@mediasec.de> wrote:
> As I understand it from this discussion, the underlying problem really is
> that MPI's lower layers expect to be passed a contiguous buffer of data.
> Your solution will solve the problem at the MPI interface - but then the
> MPI routine will need to check whether what it has been passed is contiguous
> or not, and make an appropriate contiguous temporary copy if required, and
> not forget to release that temporary after it's done with it.
Yes. To my knowwledge, there is pretty much no way to get the job done
without a copy somewhere. The functionality pretty much needs a
contiguous buffer - either that or something has to feed the data, piece
at a time, into the commnications path without using a buffer. So if you
start with non-contigious data, it is going to have to be copied into a
contiguous buffer. This isn't just MPI, but is pretty basic to most
anything relating to communication.
> Is there a standard-conforming way to detect whether the actual to an
> assumed-shape dummy is contiguous or not?
Well, there's the proposed is_contiguous intrinsic for exactly this kind
of purpose, but you'll have to wait "a while" for that, as the proposal
didn't make it into f2003 (but seems to be going forward for f2008... or
whatever the next one becomes).
--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain| experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
|