Marc's alt. proposal handles that. Rolf, it would be helpful if you
post a tiny skeleton code that shows the style of 1-sided programming
your application actually uses. For example, does it use this style
(or a subset, only-put or only-get):
while (not_done) {
get(); get(); get(); /* dynamic windows/regions */
barrier(); /* so that compute-step can
modify its local data (if any) */
compute();
put(); put(); put(); /* dynamic windows/regions */
/* in the case where locally
computed results need to
be stored at remote windows */
barrier(); /* so that the following gets
receive the new data */
}
1-sided code. If this is the 90% case, then we can slowly and carefully
add some functionality to handle part of the rest, instead of rushing
into a "kitchen-sink" approach, dumping every functionality we can think
of inside 1-sided. Just like users, implementors have concerns too.
--Raja
-=-
Raja Daoud Hewlett-Packard Co.
raja@rsn.hp.com Convex Division