diff --git a/tex/misc/background_draft.bib b/tex/misc/background_draft.bib index 71d2c7c..1a3e0aa 100644 --- a/tex/misc/background_draft.bib +++ b/tex/misc/background_draft.bib @@ -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} +} diff --git a/tex/misc/background_draft.pdf b/tex/misc/background_draft.pdf index bd479c1..c8cedff 100644 Binary files a/tex/misc/background_draft.pdf and b/tex/misc/background_draft.pdf differ diff --git a/tex/misc/background_draft.tex b/tex/misc/background_draft.tex index 94a5cae..bacd70e 100644 --- a/tex/misc/background_draft.tex +++ b/tex/misc/background_draft.tex @@ -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]}.