(j3.2006) A short comment on a small part of 17-201r1

Malcolm Cohen malcolm
Tue Oct 17 23:45:09 EDT 2017


201r1 states:

   In particular, the image index
   when executing in the team is different for every image. Because
   NEW_INDEX= is permitted in FORM TEAM, there is no simple way to
   compute the image index based on other data in the team variable,
   short of including a full translation table in each images' team
   variable value. Because a full translation table uses an unscalable
   amount of memory, the image index will almost certainly be included in
  the data that makes up the team variable value for each image.

The first sentence is empty or uninteresting; of course every image has its own unique image index.

The second sentence is misstated badly.  The image index determined by a set of cosubscripts is calculated based ONLY on the cosubscript values and cobounds.  So this must be talking about something different, like perhaps how to calculate the ?global address? of an index ? which depending on the transport mechanism could be anything from a memory offset (in a pure shared-memory machine) to a process number (on a distributed-memory machine with a single o.s. running the whole set) to an IP address.

However, so there is going to be some kind of translation table which turns the image index into whatever handle is being used to do the communication to that image.

It is *obviously incorrect* to state that this translation table is necessarily not going to be present on each image in a team.  On the contrary, how else are you going to do a coarray access to another image in the team ? are you going to poll each member of the team to find out which one is, say, image 77?  How do you even known what images are in the team without the table?  Or maybe you?re planning to broadcast to every image whether it?s in the team or no?  It is far from obvious that those techniques, which waste bandwidth and increase latency, are superior to having a table to map the image index to the ?handle?.

There are legitimate cases for having some information in the team variable that differs from one image to the next, such as handles to use for balanced synchronisations, but the basic info for accessing coarrays on other images in the team is not such a case.  (And the cases I?m aware of offhand are in general re-calculatable anyway, so if the user uses the ?wrong? copy of the team variable, doing that would be a small performance hit, not a major implementation obstacle.)

Now maybe I?m misunderstanding what information the paper is talking about, but on the face of it the paper is simply wrong in this basic claim.

Cheers,
-- 
.....................Malcolm.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.j3-fortran.org/pipermail/j3/attachments/20171018/957aa4d2/attachment.html>



More information about the J3 mailing list