3.6 排序和同步
能明确执行排序和同步是被异步通信主导的OpenSHMEM编程范型的关键能力。从轻量级和(或)本地的到重量级和(或)全局的这一些列可用的能力给程序员提供了关键的灵活性,以最小化同步开销的影响并利用OpenSHMEM最大程度的可扩展性。除了在之前的例子中列出的全局同步屏障,OpenSHMEM也提供了非全局屏障、互斥锁、排序来自单一主动端或全局RMA操作的机制(分别是fence和quiet)以及细粒度数据同步的机制(wait和wait_until)。这些工具提供了丰富的同步原语,并为开发者提供了指导PE间RMA操作排序和同步的极大灵活性。可能看起来这个集合有点大,但这些工具能让程序员在确保程序正确的要求下设计出开销最小的同步。