電腦科學中,分區全域地址空間(partitioned global address space:PGAS)是一種並列編程模型。在PGAS模型中,多個SPMD線程或行程分享出它們地址空間的一部份,從而共用出一個劃分了分區的全域地址空間,對於每個線程或行程在其中都有對它是局部性的那一部份[1]

簡介

PGAS模型試圖將針對分散式主記憶體英語Distributed memory系統的如MPI那樣的SPMD英語SPMD編程樣式,和共用主記憶體系統的數據參照語意二者的好處結合起來。PGAS模型相較分散式共用主記憶體有所創新,共用主記憶體空間的一部份可以對特定線程或行程有「親和性」,從而利用上參照局部性。這也比傳統共用主記憶體方式的一個平直地址空間要更具現實性,因為特定於硬件的數據局部性比如NUMA,可以在劃分地址空間中進行建模。

PGAS模型是SHMEM英語SHMEM[2]Unified Parallel CCoarray Fortran英語Coarray FortranChapel英語ChapelX10英語X10 (programming language)Fortress英語Fortress (programming language)Split-C英語Split-CGlobal Arrays英語Global Arrays、UPC++[3]、Coarray C++[4]、DASH[5]的基礎。自從Fortran 2008,這個模型被整合為標準Fortran語言的一部份。

PGAS模型的一個變體是非同步分區全域地址空間(asynchronous partitioned global address space:APGAS),它允許建立局部和遠端非同步任務二者[6]。使用了這個模型的兩個程式語言是Chapel英語ChapelX10英語X10 (programming language)

其他例子

參見

參照

外部連結

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.