Programming Models for Parallel Computing
全局位址空間網絡
Paul Hargrove,勞倫斯伯克利國家實驗室
2002年,加州大學伯克利分校和勞倫斯伯克利國家實驗室中的一個研究小組開始了對統一并行C語言(UPC,詳見第4章)的編譯器研究工作。該小組的部分成員參與了Java并行程式設計架構——Titanium [277]的編譯器和運作時庫的研究。這些前期工作推動了支援UPC和Titanium網絡通信的語言無關代碼庫的設計發展,為最終實作适用範圍更廣的全局位址空間語言庫奠定了基礎。他們最新的研究成果名為全局位址空間網絡庫,通常簡稱為“GASNet”。GASNet使用C語言開發,同時也支援C++。
在編寫本書時GASNet的目前版本為1.8。讀者可以從GASNet項目官網下載下傳最新版本[174]。
GASNet從釋出以來,已經廣泛應用在許多全局位址空間語言實作的網絡層。除伯克利的UPC編譯器外[173],Intrepid Technology公司的開源UPC編譯器[146](GUPC)以及休斯敦大學的開源UPC編譯器[278](OpenUH)都在使用GASNet。萊斯大學将GASNet用于他們原始版本的Co-Array Fortran (CAF)及CAF2.0編譯器上[239]。Cray的UPC與CAF編譯器[96]把GASNet應用在Cray XT系列機器上,且Cray Chapel(詳見第6章)在多個平台上都使用了GASNet。此外,OpenSHMEM(詳見第3章)所引用的休斯敦大學與橡樹嶺國家實驗室開發的項目也是通過GASNet實作的。除了上述語言和庫外(部分内容将在本書的後續章節中進行介紹),GASNet在其他研究項目中也得到了廣泛使用。