分割區全域位址空間

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

電腦科學中,分割區全域位址空間(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)

其他例子

參見

參照

  1. ^ Cristian Coarfă; Yuri Dotsenko; John Mellor-Crummey, "An Evaluation of Global Address Space Languages: Co-Array Fortran and Unified Parallel C"頁面存檔備份,存於網際網路檔案館
  2. ^ OpenSHMEM. [2019-12-12]. (原始內容存檔於2019-12-09). The Programming Models and Languages team is focused on developing the OpenSHMEM programming model for extreme scale systems. ……Currently, the team partners with NVIDIA, University of Tennessee, Knoxville, Florida State University and Paratools. …… UCX provides communication interfaces, and protocols for efficiently implementing parallel programming models such as MPI, OpenSHMEM, and task-based models. 
  3. ^ UPC++頁面存檔備份,存於網際網路檔案館
  4. ^ Coarray C++頁面存檔備份,存於網際網路檔案館
  5. ^ DASH頁面存檔備份,存於網際網路檔案館
  6. ^ Tim Stitt, "An Introduction to the Partitioned Global Address Space (PGAS) Programming Model"頁面存檔備份,存於網際網路檔案館
  7. ^ Epiphany Architecture Reference (PDF). [2019-12-11]. (原始內容存檔 (PDF)於2017-09-22). The Epiphany architecture defines a multicore, scalable, shared-memory, parallel computing fabric. It consists of a 2D array of compute nodes connected by a low-latency mesh network-on-chip英語Network on a chip. ……Local memory in each mesh node that provides 32 Bytes/cycle of sustained bandwidth and is part of a distributed, shared memory system. 

外部連結