...
This commit is contained in:
parent
cff81c485b
commit
7c33afdfb2
3 changed files with 109 additions and 4 deletions
|
|
@ -281,5 +281,45 @@
|
|||
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.
|
|
@ -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
|
||||
later on\cite{Masouros_etal.Adrias.2023}.
|
||||
|
||||
\section{HPC and Partitioned Global Address Space}
|
||||
Improvement in NIC bandwidth and transfer rate allows for applications that expose
|
||||
global address space, as well as RDMA technologies that leverage single-writer
|
||||
protocols over hierarchical memory nodes. \textbf{[GAS and PGAS (Partitioned GAS)
|
||||
\section{PGAS and Message Passing}
|
||||
While the feasibility of transparent DSM systems over multiple machines on the
|
||||
network has been made apparent since the 1980s, predominant approaches to
|
||||
``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
|
||||
specially-linked memory sections and \texttt{/dev/shm} to abstract away RDMA access]}.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue