Re: Co-Array Fortran



Gary Scott wrote:
But isn't it important to at least know whether a process is "local" or "remote"? That could impact how you structure the problem solution.

Of course. And that is the whole point of the coarray notation.

For "local" processes, you use the arrays normally. E.g.:

a(i) = b(i) + c(i)

All the above computations are "local".

For addressing "remote" data, you use the coarray notation (square
brackets) as needed. E.g.:

a(i) = b(i) + c(i)[np]

The A and B references are local. But C is a coarray, and so would
load values from coarray process 'np'. (Which may or may not be local -
depending on the value of np.)

So all communication is very visible. Nothing is hidden, except
for the actual communication mechanism. Might be mmapped data
areas on a shared memory machine, a get/put on a distributed memory
machine, even a socket read/write.

W.
.



Relevant Pages

  • Re: Co-Array Fortran
    ... load values from coarray process 'np'. ... it could denote either a local or remote reference depending on the ... executing simultaneously. ...
    (comp.lang.fortran)
  • Re: Co-Array Fortran
    ... That could impact how you structure the problem solution. ... And that is the whole point of the coarray notation. ... For addressing "remote" data, you use the coarray notation (square ...
    (comp.lang.fortran)