Christian Bell wrote: > On Wed, 04 Apr 2007, Ashley Pittman wrote: >> GasNet does however get extra credit for having a asynchronous >> collective, namely barrier. Unfortunately when you read the spec it's >> actually a special case asynchronous reduce which is almost impossible >> to optimise anything like as well as barrier which is a shame. > > GASNet's named split-phase barriers cater to a language-level feature > in UPC to generate mismatches if the name doesn't match, which can be > a useful debugging tool. The same primitive has a flags option to > make it unnamed, which probably has the properties you want (being > split-phase without the need to reduce a value across processors). > This one could be implemented over a faster split-phase notify/wait > if the interconnect can offer one
So it does, it's clearly been a while since I looked at this, the GASNET_BARRIERFLAG_ANONYMOUS implys exactly the semantics I would have preferred, I take it all back. "Named barriers" as you say are incredibly useful as you say and not just for debugging, I'm not trying to beat on them but they are effectively AllReduce when it comes to implementation them which is significantly slower/harder to do. > (although yes, this would require > bending the rules somewhat at the language-level since one local proc > doing what it thinks is an unnamed barrier would have to assume that > all of its peers also used an unnamed barrier). Looking at it carefully I don't think any rules would actually be broken, in particular passing both GASNET_BARRIERFLAG_ANONYMOUS and GASNET_BARRIERFLAG_MISMATCH would appear to not be allowed so you could use a different barrier implementation for the fast (anonymous) case and the named case. It is as you say the language bending it's own rules here. Ashley. _______________________________________________ Beowulf mailing list, Beowulf@beowulf.org To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf