《平行計算的程式設計模型》一2 3 3 屏障

2021-09-23 04:52:32 字數 716 閱讀 5759

接下來介紹的是核心api在執行屏障時的呼叫操作:

與其他的屏障實現不同,gasnet中的同步實現是「分階段」且支援可選的id匹配。

gasnet的分階段屏障特性在gasnet_barrier_wait的規範描述中非常明顯,其描述為「這是乙個只有在所有節點呼叫gasnet_barrier_notify()函式完成後返回的阻塞操作」。簡而言之,假設「notify」遞增乙個到達計數器,則「wait」將一直處於阻塞狀態直至計數器與任務大小相等。gasnet_barrier_try函式同樣需要滿足上述條件,但是如果未能滿足,則會立即返回gasnet_error_not_ready的值。完成屏障操作無論使用的是「wait」還是「try」函式,在初始化與完成之間執行大部分gasnet操作都是合法的。

屏障函式中的id和flags引數實現了屏障過程可選匹配。這部分內容建議讀者仔細閱讀規範手冊,這裡列舉了兩個易於理解的使用者示例:

gasnet的分階段屏障存在一些不太明顯的使用限制。為了簡化敘述,這裡將成功的「try」等價於「wait」操作。第乙個限制最為直觀,即必須在「notify」與「wait」之間交替使用以確保屏障操作不會相互重疊。第二個限制是在gasnet_parsync或gasnet_par編譯中,「notify」和「wait」操作在每個節點上只執行一次(客戶端可以自由選擇執行的執行緒,且不必為兩個階段選擇同一執行緒)。第三個限制是前兩個限制潛在的可能產生的後果:在gasnet_par編譯時,客戶端必須保證在任何時刻都至多有乙個客戶端執行緒處於屏障過程中。

平行計算模型

平行計算模型通常指從並行演算法 的設計和分析出發,將各種並行計算機 至少某一類並行計算機 的基本特徵抽象出來,形成乙個抽象的計算模型。從更廣的意義上說,平行計算模型為平行計算提供了硬體和軟體介面 在該介面的約定下,並行系統硬體設計者和軟體設計 者可以開發對並行性 的支援機制,從而提高系統的效能。有幾...

平行計算模型

平行計算指的在同一時刻存在多於乙個計算任務被執行。由於cpu主頻提高的上限,使用多核心處理器進行平行計算早已成為主流。gpu也是乙個多核心的處理器,但它的平行計算模型與多核的cpu有很大區別。我們有必要了解gpu的並計算模型。對平行計算模式進行分類是了解cpu和gpu平行計算區別的有效方式。一種分類...

《平行計算的程式設計模型》一1 11 總結

mpi第乙個版本發布距今已逾20多年了,在並行開發應用領域取得了巨大的成功,在大規模並行軟體開發應用中佔主導地位。mpi成功的原因在於mpi為並行軟體開發提供了健壯和完善的解決方案,並允許使用者高效地實現大規模並行軟體開發目標。mpi成功的具體原因可參考文獻 129 mpi定義的開放程序和避免了其他...