This commit is contained in:
Zhengyi Chen 2024-01-14 22:30:31 +00:00
parent cff81c485b
commit 7c33afdfb2
3 changed files with 109 additions and 4 deletions

View file

@ -281,5 +281,45 @@
organization={IEEE} organization={IEEE}
} }
@book{AST_Steen.Distributed_Systems-3ed.2017,
title={Distributed systems},
author={Van Steen, Maarten and Tanenbaum, Andrew S},
year={2017},
publisher={Maarten van Steen Leiden, The Netherlands}
}
@article{De_Wael_etal.PGAS_Survey.2015,
title={Partitioned global address space languages},
author={De Wael, Mattias and Marr, Stefan and De Fraine, Bruno and Van Cutsem, Tom and De Meuter, Wolfgang},
journal={ACM Computing Surveys (CSUR)},
volume={47},
number={4},
pages={1--27},
year={2015},
publisher={ACM New York, NY, USA}
}
@misc{WEB.HPE.Chapel_Platforms-v1.33.2023,
title={Platform-Specifc Notes},
url={https://chapel-lang.org/docs/platforms/index.html#},
journal={Chapel Documentation 1.33},
publisher={Hewlett Packard Enterprise Development LP.},
year={2023}
}
@misc{WEB.LBNL.UPC_man_1_upcc.2022,
title={upcc.1},
url={https://upc.lbl.gov/docs/user/upcc.html},
journal={Manual Reference Pages - UPCC (1)},
publisher={Lawrence Berkeley National Laboratory},
year={2022}
}
@inproceedings{Zhou_etal.DART-MPI.2014,
title={DART-MPI: An MPI-based implementation of a PGAS runtime system},
author={Zhou, Huan and Mhedheb, Yousri and Idrees, Kamran and Glass, Colin W and Gracia, Jos{\'e} and F{\"u}rlinger, Karl},
booktitle={Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models},
pages={1--11},
year={2014}
}

Binary file not shown.

View file

@ -214,10 +214,75 @@ DSM systems are at least as viable as traditional PGAS/message-passing framework
for scientific computing, also corroborated by the resurgence of DSM studies for scientific computing, also corroborated by the resurgence of DSM studies
later on\cite{Masouros_etal.Adrias.2023}. later on\cite{Masouros_etal.Adrias.2023}.
\section{HPC and Partitioned Global Address Space} \section{PGAS and Message Passing}
Improvement in NIC bandwidth and transfer rate allows for applications that expose While the feasibility of transparent DSM systems over multiple machines on the
global address space, as well as RDMA technologies that leverage single-writer network has been made apparent since the 1980s, predominant approaches to
protocols over hierarchical memory nodes. \textbf{[GAS and PGAS (Partitioned GAS) ``scaling-out'' programs over the network relies on the message-passing approach
\cite{AST_Steen.Distributed_Systems-3ed.2017}. The reasons are twofold:
\begin{enumerate}
\item {
Programmers would rather resort to more intricate, more predictable
approaches to scaling-out programs over the network
\cite{AST_Steen.Distributed_Systems-3ed.2017}. This implies
manual/controlled data sharding over nodes, separation of compute and
communication ``stages'' of computation, etc., which benefit performance
analysis.
}
\item {
Enterprise applications value throughput and uptime of relatively
computationally inexpensive tasks/resources
\cite{BOOK.Hennessy_Patterson.CArch.2011}, which requires easy
scalability of tried-and-true, latency-inexpensive applications.
Studies in transparent DSM systems mostly require exotic,
specifically-written programs to exploit global address space, which is
fundamentally at odds in terms of reusability and flexibility required.
}
\end{enumerate}
\subsection{PGAS}
\textit{Partitioned Global Address Space} (PGAS) is a parallel programming model
that (1) exposes a global address space to all machines within a network and
(2) explicates distinction between local and remote memory
\cite{De_Wael_etal.PGAS_Survey.2015}. Oftentimes, message-passing frameworks,
for example \textit{OpenMPI}, \textit{OpenFabrics}, and \textit{UCX}, are used
as backends to provide the PGAS model over various network interfaces/platforms
(e.g., Ethernet and Infiniband)\cites{WEB.LBNL.UPC_man_1_upcc.2022}
{WEB.HPE.Chapel_Platforms-v1.33.2023}.
Examples of PGAS programming languages and models include \textcolor{red}{\dots}.
Notably, implementation of a \emph{global} address space across machines on top
of machines already equipped with their own \emph{local} address space (e.g.,
cluster nodes running commercial Linux) necessitates a global addressing
mechanism for shared/shared data objects. DART\cite{Zhou_etal.DART-MPI.2014},
for example, utilizes a 128-bit ``global pointer'' to encode global memory
object/segment ID and access flags in the upper 64 bits and virtual addresses in
the lower 64 bits for each (slice of) memory object allocated within the PGAS
model. A \textit{non-collective} PGAS object is allocated entirely local to the
allocating node's memory, but registered globally. Consequently, a single global
pointer is recorded in the runtime with corresponding permission flags for the
context of some user-defined group of associated nodes. Comparatively, a
\textit{collective} PGAS object is allocated such that a partition of the object
(i.e., a subarray of the repr) is stored in each of the associated node -- for
a $k$-partitioned object, $k$ global pointers are recorded in the runtime each
pointing to the same object, with different offsets and (naturally)
independently-chosen virtual addresses. Note that this design naturally requires
virtual addresses within each node to be \emph{pinned} -- the allocated object
cannot be re-addressed to a different virtual address i.e., the global pointer
that records the local virtual address cannot be auto-invalidated.
Similar schemes can be observed in other PGAS backends/runtimes, albeit they may
opt to use a map-like data structure for addressing instead. In general, PGAS
backends differ from DSM systems in that, despite providing memory management
over remote nodes, they provide no transparent caching and transfer of remote
memory objects accessed by local nodes. The programmer is still expected to
handle data/thread movement manually when working with shared memory over network
to maximize performance metrics of interest.
\dots
Improvement in NIC bandwidth and transfer rate benefits DSM applications that expose
global address space, and those that leverage single-writer capabilities over hierarchical memory nodes. \textbf{[GAS and PGAS (Partitioned GAS)
technologies for example Openshmem, OpenMPI, Cray Chapel, etc. that leverage technologies for example Openshmem, OpenMPI, Cray Chapel, etc. that leverage
specially-linked memory sections and \texttt{/dev/shm} to abstract away RDMA access]}. specially-linked memory sections and \texttt{/dev/shm} to abstract away RDMA access]}.