diff --git a/Präsentation/TINF20C_Betriebssysteme_HPC.pdf b/Präsentation/TINF20C_Betriebssysteme_HPC.pdf new file mode 100644 index 0000000..d35c504 Binary files /dev/null and b/Präsentation/TINF20C_Betriebssysteme_HPC.pdf differ diff --git a/Präsentation/TINF20C_Betriebssysteme_HPC.pptx b/Präsentation/TINF20C_Betriebssysteme_HPC.pptx index fff2fda..b14f0fd 100644 Binary files a/Präsentation/TINF20C_Betriebssysteme_HPC.pptx and b/Präsentation/TINF20C_Betriebssysteme_HPC.pptx differ diff --git a/content/01_hardware.tex b/content/01_hardware.tex index dcbd999..f0e53b1 100644 --- a/content/01_hardware.tex +++ b/content/01_hardware.tex @@ -9,7 +9,7 @@ Ein \ac{HPC} besteht aus einem Head Node und Compute Nodes, sowie einem Netzwerk, welches diese verbindet. Ein Node wiederum besteht aus einer \ac{CPU}, einer Schnittstelle zum Highspeed Netzwerk und gegebenenfalls lokalem \ac{RAM} oder Massenspeicher. -Bei manchen \ac{HPC} verfügen einige Nodes auch über eine \ac{GPU}. +Bei manchen \ac{HPC} verfügen einige Nodes auch über eine \ac{GPU}\cite{hardware}. \section{Arten der Nodes}\label{sec:arten-der-nodes} \subsection{Head Node}\label{subsec:head-node} @@ -18,7 +18,7 @@ Dieser verteilt auch die Aufgaben an die Nodes und überwacht deren Zustand, als Der Nutzer kann dabei selbst entscheiden wie viele Nodes welche Aufgabe bearbeiten. Über den Head Node läuft auch die Verbindung zum Internet. Der Head Node verfügt über eine schnelle Verbindung zum Netzwerk, um mit der Geschwindigkeit der Nodes mitzuhalten. -Je mehr Compute Nodes das Cluster enthält, desto mehr Rechenleistung braucht auch der Head Node. +Je mehr Compute Nodes das Cluster enthält, desto mehr Rechenleistung braucht auch der Head Node\cite{coep}. \subsection{Interactive Node}\label{subsec:interactive-node} Manche Cluster verfügen über Interactive Nodes. @@ -27,16 +27,16 @@ Ansonsten arbeiten diese gleich wie die Compute Nodes und sind auch an das Netzw \subsection{Compute Node}\label{subsec:compute-node} Die Compute Nodes sind für die Ausführung der einzelnen Rechenoperationen zuständig. -Jeder Node arbeitetet die zugeteilte Aufgabe und sendet das Ergebnis der Berechnung wieder zurück an den Head Node. +Jeder Node arbeitetet die zugeteilte Aufgabe und sendet das Ergebnis der Berechnung wieder zurück an den Head Node\cite{coep}. \section{Netzwerk}\label{sec:netzwer} -Jeder Compute Node muss mit dem Head Node komminizieren. +Jeder Compute Node muss mit dem Head Node kommunizieren. Diese Kommunikation wird über das Netzwerk sichergestellt. Die Nodes sind dabei über Switches miteinander verbunden. -Die genutzten Technologien sind zum einen Ethernet, das auch auf \glqq normalen\grqq \ac{PC}s genutzt wird. +Die genutzten Technologien sind zum einen Ethernet, das auch auf \glqq normalen\grqq~PCs genutzt wird. Zum anderen wird oft InfiniBand genutzt. InfiniBand ist die Spezifikation einer Hardware-Schnittstelle für Hochgeschwindigkeitsübertragung auf kurzen Distanzen mit extrem geringer Latenz. -Meistens wird diese Technologie in Rechenzentren genutzt\cite{network, zima2002high}. +Meistens wird diese Technologie in Rechenzentren genutzt\cite{network, zima2002high, coep}. \begin{figure} \centering @@ -47,22 +47,24 @@ Meistens wird diese Technologie in Rechenzentren genutzt\cite{network, zima2002h \section{Arbeitsspeicher}\label{sec:speicher} Die Realisierung des \ac{RAM} in \ac{HPC} lässt sich grob in drei verschiedene Konzepte einteilen. -Wovon in der Regel die Dritte genannte Möglichkeit am häufigsten bei \ac{HPC} verwendet wird. +Wovon in der Regel die Dritte genannte Möglichkeit am häufigsten bei \ac{HPC} verwendet wird\cite{ram}. \subsection{Shared Memory}\label{subsec:shared-memory} Mehrere Prozessoren teilen sich den Speicher einer Globalen Speichereinheit. Die Verbindung läuft über einen High-Speed Memory Bus. Dies ermöglicht den Zugriff auf Daten zu teilen und Daten effizient auszutauschen. Die Anzahl der teilnehmenden Prozessoren an diesem System ist dabei typischer Weise von dem Bussysstem begrenzt, da die zu verarbeitende Datenmenge von der Bandbreite des Memory Buses, der die Prozessoren verbindet, begrenzt wird. + Bei Shared Memory gibt es wiederum drei Unterkategorien: Bei \ac{UMA} gibt es einen externen lokalen Speicher. Alle Nodes haben die gleiche Zugriffszeit. Bei \ac{NUMA} verfügen die Nodes über einen eigenen lokalen Speicher. Der Adressraum ist jedoch für alle Nodes freigegeben. Ein Node kann auf seinen lokalen Speicher schneller zugreifen als auf den von anderen Nodes. -Bei Zugriff auf den Speicher eines anderen Nodes wird eine Kopie dessen erstellt die so lange erhalten bleibt, bis diese überschrieben oder gelöscht wird. +Bei Zugriff auf den Speicher eines anderen Nodes wird eine Kopie dessen erstellt die so lange erhalten bleibt, bis diese überschrieben oder gelöscht wird\cite{hardware, ram}. + In der cache-only memory architecture verwenden die Nodes ihren eigenen Speicher als Cache. -Wenn auf den Speicher eines anderen Nodes zugegriffen wird, so wird eine lokale Kopie erstellt und die Daten werden an ihrer ursprünglichen Position gelöscht\cite{ram}. +Wenn auf den Speicher eines anderen Nodes zugegriffen wird, so wird eine lokale Kopie erstellt und die Daten werden an ihrer ursprünglichen Position gelöscht\cite{cache-only}. \subsection{Distributed Memory}\label{subsec:distributed-memory} Jeder Node hat Zugriff auf seinen eigenen Speicher. diff --git a/content/02_software.tex b/content/02_software.tex index 0b70bf8..1927ac5 100644 --- a/content/02_software.tex +++ b/content/02_software.tex @@ -11,7 +11,7 @@ Viele Betreiber der \ac{HPC} setzen auf \ac{RHEL}, das von Redhat für den komme Eine weitere Möglichkeit ist das Betriebssystem CentOS. Dieses Betriebssystem baut auf \ac{RHEL} auf, wird aber nicht direkt von RedHat, sondern von freiwilligen Entwicklern weiterentwickelt. Auf Web-Servern ist diese Distribution nach Debian und Ubuntu die am häufigsten genutzte\cite{os_usage_stats}. -Da in \ac{HPC} meistens keine \glqq normale\grqq Consumer-Hardware verwendet wird, sondern spezielle Hochleistungskomponenten, die vom Kernel unterstützt werden müssen, sind die Enterprise Distributionen \ac{RHEL} oder CentOS oftmals besser geeignet als zum Beispiel Debian\cite{rhel}. +Da in \ac{HPC} meistens keine \glqq normale\grqq~Consumer-Hardware verwendet wird, sondern spezielle Hochleistungskomponenten, die vom Kernel unterstützt werden müssen, sind die Enterprise Distributionen \ac{RHEL} oder CentOS oftmals besser geeignet als zum Beispiel Debian\cite{rhel}. Die Linux-Derivate beziehungsweise deren Kernel haben gegenüber Windows oder anderen Betriebssystemen den Vorteil, dass sie beliebig angepasst, beziehungsweise auch neu kompliliert, werden können und in den Rechenzentren dann eine speziell modifizierte Version genutzt werden kann. In der Liste Top500 werden die offiziell 500 schnellsten Supercomputer aufgelistet. Anhand von Abbildung~\ref{fig:top500_os} wird deutlich, das Windows, Mac und BSD bis maximal 2016 in wenigen \ac{HPC} genutzt wurden, heutzutage wird aber ausschließlich Linux verwendet\cite{top500list}. @@ -27,8 +27,6 @@ Lightweight Kernels sind dafür optimiert, mit verteiltem Speicher und tausenden Des weiteren sind die Kernel sehr effizient und versuchen einer Applikation möglichst viele Ressourcen (\ac{CPU}, \ac{RAM}, Netzwerk-Bandbreite, \ldots) zuzuweisen, damit die Berechnungszeit der Anwendung minimiert wird\cite{lightweightKernel}\cite[S. 19f]{gerofi2019operating}. \section{Remote Management}\label{sec:remote-management} -% https://www.engr.siu.edu/staff1/ahmed/mywebpage/Maxwell_SIUC_HPC_Description_Tutorial.pdf -% https://www2.latech.edu/~box/hapc/Chapter-1.pdf Remote Management, also das Steuern und Überwachen von Geräten aus der Ferne, ist für Server und \ac{HPC} extrem wichtig. Ein \ac{HPC}, dass oftmals aus mehreren Racks besteht, kann natürlich nicht mit dem privaten Desktop-PC oder Laptop verglichen werden, auf die man relativ einfach physischen Zugriff erlangen kann. Durch verschiedene Sicherheitsmechanismen wird in vielen Fällen der Zutritt zum Rechenzentrum und damit auch zur \ac{HPC}-Hardware erschwert und oftmals steht das Rechenzentrum auch gar nicht in der Nähe des Anwenders sondern zum Beispiel in der Nähe eines großen Internet-Knotenpunktes. diff --git a/content/03_vor_-_nachteile.tex b/content/03_vor_-_nachteile.tex index 056e0b0..3d66318 100644 --- a/content/03_vor_-_nachteile.tex +++ b/content/03_vor_-_nachteile.tex @@ -30,5 +30,5 @@ In einem \ac{HPC} dagegen können die Aufgaben an einen anderen Node weitergelei \section{Nachteile}\label{sec:nachteile} \paragraph{Latenzzeiten} Sehr hohe Latenzzeit im Vergleich zu einem Supercomputer. -Da die Nodes mit dem Head Node kommunizieren müssen kann es zum Datenstau kommen\cite{nachteile}. +Da die Nodes mit dem Head Node kommunizieren müssen kann es zum Datenstau kommen\cite{coep}. diff --git a/main.bib b/main.bib index a6ecb1f..488fc7c 100644 --- a/main.bib +++ b/main.bib @@ -82,7 +82,7 @@ url = {https://www.engr.siu.edu/staff1/ahmed/mywebpage/Maxwell_SIUC_HPC_Description_Tutorial.pdf}, } -@online{nachteile, +@online{coep, author = {Suraj Chavan}, title = {Design and Implementation of High Performance Computing Cluster for Educational Purpose}, note = {letzter Zugriff: 13.11.2021}, @@ -97,32 +97,39 @@ } @book{zima2002high, - title={High Performance Computing: 4th International Symposium, ISHPC 2002, Kansai Science City, Japan, May 15-17, 2002. Proceedings}, - author={Zima, H.P. and Joe, K. and ISHPC. and Sato, M. and Seo, Y. and Shimasaki, M.}, - number={Bd. 4}, - isbn={9783540436744}, - lccn={02066834}, - series={Lecture Notes in Computer Science}, - year={2002}, - publisher={Springer} + title = {High Performance Computing: 4th International Symposium, ISHPC 2002, Kansai Science City, Japan, May 15-17, 2002. Proceedings}, + author = {Zima, H.P. and Joe, K. and ISHPC. and Sato, M. and Seo, Y. and Shimasaki, M.}, + number = {Bd. 4}, + isbn = {9783540436744}, + lccn = {02066834}, + series = {Lecture Notes in Computer Science}, + year = {2002}, + publisher = {Springer} +} + +@online{cache-only, + author = {Josep Torrellas}, + title = {Cache-Only Memory Architecture}, + note = {letzter Zugriff: 16.11.2021}, + url = {https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-09766-4_166%7D}, } @online{ram, - author = {n.A.}, + author = {Raymond J. Spiteri}, title = {Concepts from High-Performance Computing}, note = {letzter Zugriff: 13.11.2021}, - url = {https://www.cs.usask.ca/\~spiteri/M314/notes/HPC1.pdf}, + url = {https://www.cs.usask.ca/~spiteri/M314/notes/HPC1.pdf}, } @online{network, - author = {n.A.}, + author = {HPC Advisory Council}, title = {Introduction to High-Performance Computing}, note = {letzter Zugriff: 13.11.2021}, url = {https://www.hpcadvisorycouncil.com/pdf/Intro_to_HPC.pdf}, } @online{comparison, - author = {n.A.}, + author = {Wikipedia}, note = {letzter Zugriff: 13.11.2021}, title = {Distributed memory}, url = {https://en.wikipedia.org/wiki/Distributed_memory}, diff --git a/main.tex b/main.tex index 4cab344..2c6d01d 100644 --- a/main.tex +++ b/main.tex @@ -1,5 +1,3 @@ -% TODO: ß -% TODO: Acronyms % Preamble % !IMPORTANT! Do not change the font size here, but after the \begin{document} markup \documentclass[12pt,a4paper,oneside,listof=totoc,abstract=on,parskip=half]{scrreprt} @@ -7,7 +5,7 @@ \include{customization/text-variables} % Packages -\usepackage[T1]{fontenc} +\usepackage[T1,EU1]{fontenc} \usepackage[ngerman]{babel} \usepackage[autostyle=true,german=quotes]{csquotes} \usepackage{refcheck}