% !TeX spellcheck = de_DE
\subsection{Kommunikation}
\begin{itemize}
	\item klassicher Ansatz aus \begriff{TCP/UDP}, \begriff{IP} und \begriff{Sockets} für Cluster oft nicht ausreichend: \begin{itemize}
		\item viele Schichten mit jeweiligem Overhead
		\item teure \begriff{syscall}s notwendig
		\item insbesondere TCP besitzt viele schwergewichtige Sicherungsmechanismen (+ Slow-Start)
	\end{itemize}
	\item wichtige Aspekte für effiziente Kommunikation: \begin{itemize}
		\item Mechanismus für Datentransfer (\begriff{Programmed IO} (PIO) vs. \begriff{Direct Memory Access} (DMA)): \begin{itemize}
			\item RAM $\rightarrow$ NIC, NIC $\rightarrow$ NIC, NIC $\rightarrow$ RAM
			\item 
		\end{itemize}
		\item Speicherverwaltung (schnelles Auflösen virtueller Adressen, Pinning von für DMA relevanten Pages)
		\item Schutz für Userspace-Adressräume (private DMA-Bereiche)
		\item Benachrichtigung beim Empfänger (Polling vs. Interrupts)
		\item Zuverlässigkeit der Datenübertragung (hardware- oder software-basiert)
	\end{itemize}
	\item \begriff{InfiniBand}: \begin{itemize}
		\item hohe Bandbreite, niedrige Latenz
		\item unterstützt \enquote{Zero-Copy Data Transfers} und \begriff{Remote DMA}
		\item Hardware-Komponenten: \begriff{Host Channel Adapter} (HCA, für Rechner), \begriff{Target Channel Adapter} (TCA, für Storage), Switches, Router
		\item Topologie: Punkt-zu-Punkt-Verbindungen durch Switches
		\item Zuverlässigkeit: Unterstützung für redundante Verbindungen, QoS, 16 virtuelle Lanes mit getrennten Bandbreiten und Flusskontrolle
	\end{itemize}
\end{itemize}