天天看點

《并行計算的程式設計模型》一3.4.2 配置設定和釋放

對稱堆的配置設定和釋放函數與C語言标準的配置設定和釋放函數類似,唯一複雜的因素是使用者必須確定每個PE在大小和順序上執行完全相同的配置設定序列。這樣做能確定對稱堆的一緻性,允許PE使用自身對象的位址定位對稱對象。

對稱準則:每個PE的配置設定和釋放操作都要按相同的順序并使用相同的變量來執行。不能保證必要的對稱性至少會導緻程式挂起,因為配置設定是全局同步事件。

代碼清單3-2通過建立三個對稱對象展示了這一準則。數組a和b通過static關鍵字保證了對稱,指針c指向了另一塊由shmalloc()配置設定再由shfree()釋放的對稱記憶體(有10個整數的數組)。因為每個PE執行個體有相同的聲明和動态配置設定序列,是以這個堆是對稱的。

《并行計算的程式設計模型》一3.4.2 配置設定和釋放
《并行計算的程式設計模型》一3.4.2 配置設定和釋放

代碼清單3-3展示了幾個違背對稱準則之處。注意該程式的主要錯誤是配置設定的執行、順序或大小都一定程度上取決于每個PE上不同的資料。

《并行計算的程式設計模型》一3.4.2 配置設定和釋放

繼續閱讀