malcolm at nag-j.co.jp
Wed May 30 22:46:09 EDT 2012
>there should be a procedure for broadcasting values.
That's very vague ... I would guess that procedure either means "subroutine" or
means "mechanism"... one might think that
x[vector] = y
is an obvious syntax for broadcast. I would further guess that that is not your
Also, broadcast does not specify whether all images or simply several.
"there should be a subroutine that broadcasts a value on one image to a set of
? (change "a set of" to "all" if that's what you think we should intend).
Or even more specifically,
"there should be a subroutine that assigns a value to a coarray on a set of
since I presume we're thinking that "broadcast" means assigning a value to the
same coarray on all those images.
BTW values don't need to be plural, an array has a single value (composed of at
least zero element values), unless you are meaning assigning to multiple
different variables, which I rather doubt...
>collectives are less controversial than teams
maybe so, but there seems to be an interaction....
>Collective subroutines offer [more performance]
I note that the paragraph still makes no definition of what a collective
subroutine is. Now maybe we all understand this, but then again maybe not. Can
I ask that this item begins with a definition of what a collective subroutine
actually is, so that we are all on the same wavelength? Maybe something like
"A collective subroutine is an intrinsic subroutine that is executed by all
images; it has internal synchronization and performs a computation based on the
value of a coarray on all images."
[you already have later the fact that the result of the computation is available
on one image or all, but that could also be rolled up into this basic
Now, I want to talk about teams and collectives. Do these mix? If a member of
a team calls a collective, is it the whole world that participates or just the
team? I would have thought, perhaps wrongly, that collectives that operate over
the whole image space only are of limited use (it certainly rules them out for
any library routine, since the synchronisation is over the whole image space).
So I would have thought that even if we did not have teams, we would want
team-like collectives. If we do have teams, then the team mechanism would be
the obvious one for selecting the participating images.
So in fact what *I* would expect a collective subroutine to do would be to
perform a computation based on the value of a coarray on a set of images, not
all images. And the result of that computation would be made available on one
or more of the participating images. Should that be a set of the participating
images, or limited to being one or all of them? Just one or all is probably
good enough I would guess.
................................Malcolm Cohen, Nihon NAG, Tokyo.
More information about the Coarray-ts