在電腦科學中,分區全域地址空間(partitioned global address space:PGAS)是一種並列編程模型。在PGAS模型中,多個SPMD線程或行程分享出它們地址空間的一部份,從而共用出一個劃分了分區的全域地址空間,對於每個線程或行程在其中都有對它是局部性的那一部份[1]。
簡介
PGAS模型試圖將針對分散式主記憶體系統的如MPI那樣的SPMD編程樣式,和共用主記憶體系統的數據參照語意二者的好處結合起來。PGAS模型相較分散式共用主記憶體有所創新,共用主記憶體空間的一部份可以對特定線程或行程有「親和性」,從而利用上參照局部性。這也比傳統共用主記憶體方式的一個平直地址空間要更具現實性,因為特定於硬件的數據局部性比如NUMA,可以在劃分地址空間中進行建模。
PGAS模型是SHMEM[2]、Unified Parallel C、Coarray Fortran、Chapel、X10、Fortress、Split-C、Global Arrays、UPC++[3]、Coarray C++[4]、DASH[5]的基礎。自從Fortran 2008,這個模型被整合為標準Fortran語言的一部份。
PGAS模型的一個變體是非同步分區全域地址空間(asynchronous partitioned global address space:APGAS),它允許建立局部和遠端非同步任務二者[6]。使用了這個模型的兩個程式語言是Chapel和X10。
其他例子
參見
參照
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.