diff --git a/TOP500_202106.xlsx b/TOP500_202106.xlsx index 7249be6..1da771f 100644 Binary files a/TOP500_202106.xlsx and b/TOP500_202106.xlsx differ diff --git a/content/00_einleitung.tex b/content/00_einleitung.tex index 6e974fe..4089ff5 100644 --- a/content/00_einleitung.tex +++ b/content/00_einleitung.tex @@ -1,3 +1,10 @@ \chapter{Einleitung}\label{ch:einleitung} +Für verschiedene Anwendungen wird heutzutage immer mehr Rechenleistung benötigt. +Nicht unbedingt für Webserver, die für die Webseiten gebraucht werden, sondern vor allem in der Forschung und beim Militär. +Die meiste Leistung brauchen dabei Anwendungsbereiche wie Klima- und Erdsystemforschung, Geophysik, Nanostrukturphysik, Festkörperphysik, Hydrodynamik, Astrophysik, Elementarteilchenphysik, Physik der Hadronen und Kerne, Materialwissenschaften, theoretische Chemie, Biophysik, Bioinformatik sowie die Plasmaphysik\cite{einleitung}. +Die Klima- beziehungsweise Wetterberechnungen wären dabei auf kleineren Workstations oder Servern gar nicht möglich. +Es müssen extrem viele Parameter mit eingerechnet werden, wofür die \ac{HPC} verwendet werden können. -% TODO \ No newline at end of file +Im nachfolgenden Dokument wird zuerst auf die Hardware beziehungsweise Architektur eines \ac{HPC} eingegangen. +Danach geht es um die Software, die zum Betrieb eines solchen Clusters genutzt werden kann. +Zuletzt wird noch auf die Vor- und Nachteile eines Clusters im Vergleich zu einem Supercomputer, der nicht als Cluster aufgebaut ist, eingegangen. diff --git a/content/01_hardware.tex b/content/01_hardware.tex index 4371f7e..dcbd999 100644 --- a/content/01_hardware.tex +++ b/content/01_hardware.tex @@ -7,26 +7,36 @@ \label{fig:top500-architecture} \end{figure} +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}. + \section{Arten der Nodes}\label{sec:arten-der-nodes} \subsection{Head Node}\label{subsec:head-node} Der Head Node oder auch Master Node stellt die Benutzerumgebung zur Verfügung. Dieser verteilt auch die Aufgaben an die Nodes und überwacht deren Zustand, also deren Verfügbarkeit. 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 PCs mitzuhalten. +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. \subsection{Interactive Node}\label{subsec:interactive-node} Manche Cluster verfügen über Interactive Nodes. Diese können direkt wie ein gewöhnliches Remote-access Unix System angesteuert werden, ohne über den Head Node angesprochen zu werden. -Ansonsten arbeiten diese und sind ans Netzwerk wie gewöhnliche Compute Nodes angeschlossen. +Ansonsten arbeiten diese gleich wie die Compute Nodes und sind auch an das Netzwerk dieser angeschlossen. \subsection{Compute Node}\label{subsec:compute-node} -Für die Ausführung der einzelnen Rechenoperationen zuständig. -Arbeitet zugeteilte Aufgabe oder Teilaufgabe ab. +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. \section{Netzwerk}\label{sec:netzwer} -Jeder Node inklusive des Head Nodes verfügt über einen Port mit diesem ist er über eine Lan an einen Switch angeschlossen. -Ethernet und InfiniBand sind dabei die am häufigsten verwendeten Verbindungsarten für HPCs. +Jeder Compute Node muss mit dem Head Node komminizieren. +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. +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}. \begin{figure} \centering @@ -35,20 +45,52 @@ Ethernet und InfiniBand sind dabei die am häufigsten verwendeten Verbindungsart \label{fig:top500_interconnect} \end{figure} -\section{Speicher}\label{sec:speicher} +\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. + \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 begrenzt, da die zu verarbeitende Datenmenge von der Bandbreite des Memory Buses, der die Prozessoren verbindet, begrenzt wird. +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. +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}. \subsection{Distributed Memory}\label{subsec:distributed-memory} Jeder Node hat Zugriff auf seinen eigenen Speicher. Das System gleicht dabei einem Verbund von selbstständig arbeitenden Computern, die zusammenarbeiten, um ein Problem zu lösen. Der Zugriff auf den lokalen Speicher eines Computers ist dabei sehr schnell. -Der Zugriff auf andere Speicher geht über ein high-speed Verbindungsnetzwerk. +Der Zugriff auf andere Speicher geht über ein high-speed Verbindungsnetzwerk\cite{ram}. \subsection{Mixed Shared/Distributed Memory}\label{subsec:mixed-shared/distributed-memory} Die neuste Art der Speicherverwaltung ist eine Mischung der beiden Systeme. Dabei sind die Nodes in Gruppen aufgeteilt beliebiger Größe, die sich den Speicher teilen. -Die Gruppen der Nodes sind dabei wiederum über eine Highspeed Verbindung mit den anderen Nodes verbunden um auf den Speicher zugreifen zu können. +Die Gruppen der Nodes sind dabei wiederum über eine Highspeed Verbindung mit den anderen Nodes verbunden, um auf den Speicher zugreifen zu können. +Der User sieht auf den Speicher als Gesamtspeicher, wie bei Shared Memory, auch wenn dieser tatsächlich unabhängiger lokaler Speicher ist, mit unterschiedlichen Adressräumen\cite{ram}. + +\subsection{Vergleich der Systeme} +Der Vorteil von \ac{SM} und \ac{DSM} ist, dass eine einheitlicher Adressraum (virtuell oder real) existiert, auf welchem alle Daten existieren. +Ein Vorteil von \ac{DM} ist, dass keine race condition auftreten können. +Bei \ac{DSM} und \ac{SM} ist auch die Skalierbarkeit bei einem Algorithmus einfacher, da Zugriff von weiteren Nodes einfach möglich ist\cite{comparison}. + +\paragraph{Mass Storage} +Der Massenspeicher in einem Clustersystem kann auf verschiedene Arten realisiert werden. +Zwei dieser Konzepte werden hier aufgeführt\cite{hardware}. + +\paragraph{Uniform Disc Access} +Bei Uniform Disc Access oder auch shared disc system wird der Speicher wie beim Shared Memory gemeinsam von den Nodes verwendet. +Die Zugriffszeit ist also immer die Gleiche. Der Datentransfer läuft in der Regel über geteiltes Small Computer System Interface oder eine Fibre Channel Verbindungen zum Massenspeicher\cite{hardware}. + +\paragraph{Non-uniform Disc Access} +Hierbei ist der Speicher mit einem Node lokal verbunden. +Dieser kann schneller auf den Speicher zugreifen als andere Nodes. +Der Zugriff von anderen Nodes erfolgt über eine software virtual disk layer welche über das bestehende Netzwerk die Daten übertragen kann. +Dies erhöht die Kosten auf Speicher Zugriff sehr stark im Verhältnis zum Uniform Disc Access\cite{hardware}. \ No newline at end of file diff --git a/content/02_software.tex b/content/02_software.tex index a1c4aed..0b70bf8 100644 --- a/content/02_software.tex +++ b/content/02_software.tex @@ -1,58 +1,58 @@ \chapter{Software}\label{ch:software} -Neben der bereits erwähnten Hardware muss es natürlich auch Software, wie das Betriebssystem oder die Anwendungen geben, damit die Leistung des \acrshort{hpc} genutzt werden kann. +Neben der bereits erwähnten Hardware muss es natürlich auch Software, wie das Betriebssystem oder die Anwendungen geben, damit die Leistung des \ac{HPC} genutzt werden kann. Im folgenden soll zunächst auf das Betriebssystem beziehungsweise die Anforderungen an ein Betriebssystem eingegangen werden. Des Weiteren ist auch eine Software für das Remote Management wichtig, da diese das Arbeiten mit dem Cluster signifikant verbessert. Danach sollen noch zwei Tools vorgestellt werden, mit denen der gesamte Einrichtungs- und Administrierprozess eines Clusters vereinfacht werden soll. -Als letztes wird noch darauf eingegangen, für welche Art von Software ein \acrshort{hpc} genutzt werden kann und welche Anforderungen die Software erfüllen muss. +Als letztes wird noch darauf eingegangen, für welche Art von Software ein \ac{HPC} genutzt werden kann und welche Anforderungen die Software erfüllen muss. \section{Betriebssystem}\label{sec:betriebssystem} Für High Performance Cluster wird in den meisten Fällen ein Linux Derivat verwendet. -Viele Betreiber der \acrshort{hpc} setzen auf \acrshort{rhel}, das von Redhat für den kommerziellen Markt entwickelt wird und dadurch zum Teil auch stabiler als andere Derivate läuft. +Viele Betreiber der \ac{HPC} setzen auf \ac{RHEL}, das von Redhat für den kommerziellen Markt entwickelt wird und dadurch zum Teil auch stabiler als andere Derivate läuft. Eine weitere Möglichkeit ist das Betriebssystem CentOS. -Dieses Betriebssystem baut auf \acrshort{rhel} auf, wird aber nicht direkt von RedHat, sondern von freiwilligen Entwicklern weiterentwickelt. +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 \acrshort{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 \acrshort{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 \acrshort{hpc} genutzt wurden, heutzutage wird aber ausschließlich Linux verwendet\cite{top500list}. +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}. \begin{figure} \centering \includegraphics[width=\textwidth]{images/Operating_systems_used_on_top_500_supercomputers.svg} - \caption{Verbreitung einiger Betriebssysteme unter den Top500 \acrshort{hpc}\cite{top500image}} + \caption{Verbreitung einiger Betriebssysteme unter den Top500 HPC\cite{top500image}} \label{fig:top500_os} \end{figure} -In den \acrshort{hpc} werden oftmals Lightweight Kernel verwendet. +In den \ac{HPC} werden oftmals Lightweight Kernel verwendet. Lightweight Kernels sind dafür optimiert, mit verteiltem Speicher und tausenden von Prozessoren zusammen zu arbeiten. -Des weiteren sind die Kernel sehr effizient und versuchen einer Applikation möglichst viele Ressourcen (\acrshort{cpu}, \acrshort{ram}, Netzwerk-Bandbreite, \ldots) zuzuweisen, damit die Berechnungszeit der Anwendung minimiert wird\cite{lightweightKernel}\cite[S. 19f]{gerofi2019operating}. +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 \acrshort{hpc} extrem wichtig. -Ein \acrshort{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 pyhsischen Zugriff erlangen kann. -Durch verschiedene Sicherheitsmechanismen wird in vielen Fällen der Zutritt zum Rechenzentrum und damit auch zur \acrshort{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. +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. Um trotzdem (fast) alle Administrativen Aufgaben erledigen zu können, gibt es eine spezielle Schnittstelle, die oftmals auch direkt im Mainboard des Servers untergebracht ist. -Diese Schnittstelle nennt sich zum Beispiel \acrshort{ipmi}. -Über eine dedizierte Netzwerkschnittstelle und ein zusätzliches Management-Netzwerk kann Remote auf den Server zugegriffen werden, um zum Beispiel die \acrshort{cpu}-Auslastung, die Temperatur von RAM oder \acrshort{cpu} zu Überwachen. +Diese Schnittstelle nennt sich zum Beispiel \ac{IPMI}. +Über eine dedizierte Netzwerkschnittstelle und ein zusätzliches Management-Netzwerk kann Remote auf den Server zugegriffen werden, um zum Beispiel die \ac{CPU}-Auslastung, die Temperatur von RAM oder \ac{CPU} zu Überwachen. Im Extremfall kann sogar über das Internet ein neues Betriebssystem installiert werden\cite{ipmi_specs}. -Zusätzlich zur Überwachung über \acrshort{ipmi} sind auch Healthchecks sinnvoll. +Zusätzlich zur Überwachung über \ac{IPMI} sind auch Healthchecks sinnvoll. Wenn zum Beispiel Container genutzt werden (dazu später mehr), kann in jedem Container eine periodisch ausgeführte Aufgabe eingebaut wird, die dann zum Beispiel alle 5 Sekunden überprüft, ob alles in Ordnung ist. -Da ein \acrshort{hpc} in den seltensten Fällen von einem Nutzer alleine genutzt wird, müssen sich mehrere Nutzer Remote anmelden. +Da ein \ac{HPC} in den seltensten Fällen von einem Nutzer alleine genutzt wird, müssen sich mehrere Nutzer Remote anmelden. Um zu regulieren, wer sich anmelden darf, welche Rechte die jeweilige Person hat oder um später zu rekonsturieren, welcher Nutzer welche Prozesse ausgeführt hat, muss auch ein Authentifizierungssystem genutzt werden. Als letztes ist auch noch die Automatisierung und das Resource-Management unerlässlich. -Da viele Jobs nicht die gesamte Leistung des \acrshort{hpc} brauchen, können mehrere parallel ausgeführt werden. +Da viele Jobs nicht die gesamte Leistung des \ac{HPC} brauchen, können mehrere parallel ausgeführt werden. Diese Aufgabe wird zum Beispiel vom Resource-Manager erledigt. \section{xCAT}\label{sec:xcat} xCAT (Extreme Cloud Administration Toolkit) ist ein, von IBM entwickeltes, open-source Tool, dass zur Erstellung, Administration und zum Deployment von verteilten Systemen genutzt wird. -Vor allem das erstellen und managen von Clustern erfordert, wie in Kapitel~\ref{sec:remote-management} bereits erwähnt, viel administrativen Aufwand. -Die Software wird auf dem Management Node installiert und kann danach mit vergleichsweise wenig Aufwand die einzelnen Nodes im Netzwerk finden und einrichten +Vor allem das Erstellen und Managen von Clustern erfordert, wie in Kapitel~\ref{sec:remote-management} bereits erwähnt, viel administrativen Aufwand. +Die Software wird auf dem Management/Head Node installiert und kann danach mit vergleichsweise wenig Aufwand die einzelnen Nodes im Netzwerk finden und einrichten Um die Last des Management Nodes zu reduzieren, können auch Compute Nodes als Service Nodes verwendet werden, die dann ähnliche Aufgaben wie der Managament Node übernehmen, aber trotzdem noch vom Management Node gesteuert werden (siehe Abbildung~\ref{fig:xcat_architektur}). -Das ist vorallem wichtig, wenn die Speicher-Voraussetzungen von IBM beachtet werden: ein kleines Cluster, mit weniger als 16 Nodes, braucht schon ca. 5GB \acrshort{ram}. -Wenn das Cluster dann aber zum Beispiel 158.976 Nodes hat, so wie das aktuell schnellste \acrshort{hpc}, steigt der \acrshort{ram} Verbrauch und wird vermutlich die 32GB \acrshort{ram} pro Node deutlich übersteigen\cite{xCAT_docs, top500list}. +Das ist vorallem wichtig, wenn die Speicher-Voraussetzungen von IBM beachtet werden: ein kleines Cluster, mit weniger als 16 Nodes, braucht schon ca. 5GB \ac{RAM}. +Wenn das Cluster dann aber zum Beispiel 158.976 Nodes hat, so wie das aktuell schnellste \ac{HPC}, steigt der \ac{RAM} Verbrauch und wird vermutlich die 32GB \ac{RAM} pro Node deutlich übersteigen\cite{xCAT_docs, top500list}. \begin{figure} \centering \includegraphics[width=\textwidth]{images/Xcat-arch} @@ -64,15 +64,15 @@ Wenn das Cluster dann aber zum Beispiel 158.976 Nodes hat, so wie das aktuell sc \section{OpenHPC}\label{sec:openhpc} Ähnlich wie xCAT gibt es auch noch OpenHPC. OpenHPC ist ebenfalls eine open-source Anwendung, die von der Linux Foundation entwickelt wird. -Die Software wird nur in CentOS getestet, aber durch die starken Ähnlichkeiten zu zum Beispiel \acrshort{rhel}, sollte sie auch dort funktionieren. -Auch OpenHPC hat es sich zur Aufgabe gemacht, die Einrichtung eines \acrshort{hpc} zu vereinfachen, was natürlich dann auch zu reduzierten Betriebskosten des \acrshort{hpc} führt. +Die Software wird nur in CentOS getestet, aber durch die starken Ähnlichkeiten zu zum Beispiel \ac{RHEL}, sollte sie auch dort funktionieren. +Auch OpenHPC hat es sich zur Aufgabe gemacht, die Einrichtung eines \ac{HPC} zu vereinfachen, was natürlich dann auch zu reduzierten Betriebskosten des \ac{HPC} führt. Durch einen einzigen Software-Stack mit standardisierten, getesteten Komponenten, hat der Administrator die Möglichkeit ohne großen Konfigurationsaufwand das Cluster einzurichten und zu nutzenn. Der Software-Stack besteht aus vielen verschiedenen einzelnen Tools, die in einzelne Kategorien eingeteilt werden können\cite{openhpc_docs}: \begin{itemize} \item Administration \item Compiler \item Entwicklung - \item \acrshort{io} + \item \ac{I/O} \item Parallelisierung \item Performance Management \item Resource Management @@ -85,15 +85,15 @@ Auch wenn OpenHPC von der Linux Foundation entwickelt wird, sind viele große Un Diese Unternehmen setzen die Software dann zum Teil auch in Clustern ein\cite{openhpc_presentation}. \section{Anwendungssoftware}\label{sec:anwendungssoftware} -Für was kann die Leistung eines \acrshort{hpc} genutzt werden? +Für was kann die Leistung eines \ac{HPC} genutzt werden? Oft werden die Cluster mithilfe von Containern genutzt. Containerisierung ist eine Virtualisierungsmethode, bei der die Gäste (Instanzen eines Betriebssystems) isoliert voneinander den Kernel des Hostsystems nutzen. Im Gegensatz zu anderen Virtualisierungsmethoden ist die Containerisierung ressourcenschonender. -Die Container haben in \acrshort{hpc} den Vorteil, dass sie vom Host-Betriebssystem und den System-Librarys getrennt sind. +Die Container haben in \ac{HPC} den Vorteil, dass sie vom Host-Betriebssystem und den System-Librarys getrennt sind. Betriebssystem Aktualisierungen haben keinen Einfluss auf die Software, die in den Containern läuft\cite[S. 12]{gerofi2019operating}. -Die meisten \acrshort{hpc} werden vom Militär, von Regierungen, von der Industrie oder von Forschern genutzt. -Dabei werden oft mithilfe von \acrshort{ai}, \acrshort{ml} oder \acrshort{dl}, Berechnungen durchgeführt\cite[S. 12f]{gerofi2019operating}. +Die meisten \ac{HPC} werden vom Militär, von Regierungen, von der Industrie oder von Forschern genutzt. +Dabei werden oft mithilfe von \ac{AI}, \ac{ML} oder \ac{DL}, Berechnungen durchgeführt\cite[S. 12f]{gerofi2019operating}. Die Rechenleistung wird unter anderem für Wettervorhersagen, die Öl- und Gasförderung, den Bereich der Physik und Quantenmechanik verwendet. -Mit einem einzelnen \acrshort{pc} oder Server wären solche Berechnungen nicht möglich oder würden extrem lange dauern\cite{intel_what_is_hpc}. \ No newline at end of file +Mit einem einzelnen \ac{PC} oder Server wären solche Berechnungen nicht möglich oder würden extrem lange dauern\cite{intel_what_is_hpc}. \ No newline at end of file diff --git a/content/03_vor_-_nachteile.tex b/content/03_vor_-_nachteile.tex index 42b1103..056e0b0 100644 --- a/content/03_vor_-_nachteile.tex +++ b/content/03_vor_-_nachteile.tex @@ -1,14 +1,17 @@ \chapter{Vor- und Nachteile}\label{ch:vor-und-nachteile} +Im Vergleich zu anderen Arten von Supercomputern gibt haben \ac{HPC} einige Vor- beziehungsweise Nachteile. +Auf diese soll in diesem Kapitel kurz eingegangen werden. + \section{Vorteile}\label{sec:vorteile} \paragraph{Geringere Kosten} -Da PCs immer günstiger werden ist es mittlerweile im Verhältnis zu einem Supercomputer deutlich günstiger eine große Anzahl von Prozessoren zu kaufen. +Da PCs immer günstiger werden ist es mittlerweile im Verhältnis zu einem Supercomputer deutlich günstiger eine große Anzahl von Prozessoren zu kaufen\cite{vorteile}. \paragraph{Rechenleistung} -Die parallele Prozessverarbeitung von HPC ermöglicht, da es kostengünstiger ist, eine höhere Anzahl von Einheiten zu kaufen und dadurch für den gleichen Preis ein höhere Rechenleistung zu erhalten. +Die parallele Prozessverarbeitung von \ac{HPC} ermöglicht, da es kostengünstiger ist, eine höhere Anzahl von Einheiten zu kaufen und dadurch für den gleichen Preis ein höhere Rechenleistung zu erhalten\cite{vorteile}. \paragraph{Skalierbarkeit} -Einer der größten Vorteile der HPC ist die Skalierbarkeit, die man erhält. -Im Gegensatz zu gewöhnlichen Computern mit festgesetzter Prozessorleistung kann man hier leicht durch Anfügen weiterer Nodes diese erhöhen. +Einer der größten Vorteile der \ac{HPC} ist die Skalierbarkeit, die man erhält. +Im Gegensatz zu gewöhnlichen Computern mit festgesetzter Prozessorleistung kann man hier leicht durch Anfügen weiterer Nodes diese erhöhen\cite{vorteile}. \paragraph{Verbesserte Netzwerktechnologie} Durch die Weiterentwicklung von Clustersystemen wurden auch Netzwerktechnologien weiterentwickelt, auch der Preis dieser sinkt Dank deren Fortschritts. @@ -16,12 +19,16 @@ Durch die Weiterentwicklung von Clustersystemen wurden auch Netzwerktechnologien Clustersysteme sind häufig mit einem einzigen virtual local area network (VLAN) verbunden. Jeder Computer wird dann als eigenständiger Node behandelt. Information kann sehr gut durch dieses Netzwerk übertragen werden mit wenig Störungen. -Was garantiert, dass es zu keinen Verzögerungen kommt. +Was garantiert, dass es zu keinen Verzögerungen kommt\cite{vorteile}. \paragraph{Availability} Wenn ein Mainframe Computer abstürzt, fällt das ganze System aus. -In einem HPC dagegen können die Aufgaben an einen anderen Node weitergeleitet werden, was eine sehr gute Ausfallsicherheit gewährleistet und Verzögerungen gering ausfallen. +In einem \ac{HPC} dagegen können die Aufgaben an einen anderen Node weitergeleitet werden, was eine sehr gute Ausfallsicherheit gewährleistet und Verzögerungen gering ausfallen\cite{vorteile}. + + \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. +Da die Nodes mit dem Head Node kommunizieren müssen kann es zum Datenstau kommen\cite{nachteile}. + diff --git a/customization/text-variables.tex b/customization/text-variables.tex index 8e1d6e4..ebc30a3 100644 --- a/customization/text-variables.tex +++ b/customization/text-variables.tex @@ -6,6 +6,6 @@ \renewcommand{\date}{\today} \newcommand{\institutionName}{Duale Hochschule Baden-Württemberg} \newcommand{\paperName}{Betriebssysteme} -\newcommand{\registerId}{9829423, XXXXXXX} % TODO +\newcommand{\registerId}{9829423, 9998294} \newcommand{\kurs}{TINF20C} \renewcommand{\title}{High Performance Cluster} \ No newline at end of file diff --git a/includes/acronyms.tex b/includes/acronyms.tex index b92971e..4cd09e9 100644 --- a/includes/acronyms.tex +++ b/includes/acronyms.tex @@ -1,11 +1,20 @@ -\makenoidxglossaries -\newacronym{hpc}{HPC}{High Performance Cluster} -\newacronym{ram}{RAM}{Random Access Memory} -\newacronym{cpu}{CPU}{Central processing unit} -\newacronym{rhel}{RHEL}{RedHat Enterprise Linux} -\newacronym{io}{I/O}{Input/Output} -\newacronym{ai}{AI}{Artificial Intelligence} -\newacronym{ml}{ML}{Machine Learning} -\newacronym{dl}{DL}{Deep Learning} -\newacronym{pc}{PC}{Personal Computer} -\newacronym{ipmi}{IPMI}{Intelligent Platform Management Interface} +\chapter*{Abkürzungsverzeichnis} + +\begin{acronym}[NUMA] + \acro{HPC}{High Performance Cluster} + \acro{RAM}{Random Access Memory} + \acro{CPU}{Central processing unit} + \acro{GPU}{Graphics processing unit} + \acro{RHEL}{RedHat Enterprise Linux} + \acro{I/O}{Input/Output} + \acro{AI}{Artificial Intelligence} + \acro{ML}{Machine Learning} + \acro{DL}{Deep Learning} + \acro{PC}{Personal Computer} + \acro{IPMI}{Intelligent Platform Management Interface} + \acro{UMA}{Uniform Memory Access} + \acro{NUMA}{Non-Uniform Memory Access} + \acro{DM}{Distributed Memory} + \acro{DSM}{Distributed Shared Memory} + \acro{SM}{Shared Memory} +\end{acronym} diff --git a/main.bib b/main.bib index c57ae6d..a6ecb1f 100644 --- a/main.bib +++ b/main.bib @@ -13,7 +13,7 @@ institution = {Sandia National Laboratories}, year = {2005}, } - + @online{ipmi_specs, author = {Intel Corporation}, title = {Intelligent Platform Management Interface Specification v2.0}, @@ -69,6 +69,65 @@ url = {https://w3techs.com/technologies/details/os-linux}, } +@online{einleitung, + author = {Dr. Marcus Richter}, + title = {Einsatzgebiete für Supercomputer}, + note = {Letzter Zugriff: 16.11.2021}, + url = {https://www.tecchannel.de/a/einsatzgebiete-fuer-supercomputer,446493}, +} +@online{vorteile, + author = {Abdussamad Muntahi, Muhammad Rahman}, + title = {High–Performance Computing}, + note = {Letzter Zugriff: 14.11.2021}, + url = {https://www.engr.siu.edu/staff1/ahmed/mywebpage/Maxwell_SIUC_HPC_Description_Tutorial.pdf}, +} + +@online{nachteile, + author = {Suraj Chavan}, + title = {Design and Implementation of High Performance Computing Cluster for Educational Purpose}, + note = {letzter Zugriff: 13.11.2021}, + url = {https://www.coep.org.in/page_assets/341/121003015.pdf} +} + +@online{hardware, + author = {James W. Rawles.}, + title = {Oracle9i Real Application Clusters Concepts}, + note = {letzter Zugriff: 13.11.2021}, + url = {https://docs.oracle.com/cd/A91202_01/901_doc/rac.901/a89867/pshwarch.htm}, +} + +@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} +} + +@online{ram, + author = {n.A.}, + title = {Concepts from High-Performance Computing}, + note = {letzter Zugriff: 13.11.2021}, + url = {https://www.cs.usask.ca/\~spiteri/M314/notes/HPC1.pdf}, +} + +@online{network, + author = {n.A.}, + 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.}, + note = {letzter Zugriff: 13.11.2021}, + title = {Distributed memory}, + url = {https://en.wikipedia.org/wiki/Distributed_memory}, +} + % Bilder @online{top500image, author = {Benedikt.Seidl}, diff --git a/main.tex b/main.tex index e40c08f..4cab344 100644 --- a/main.tex +++ b/main.tex @@ -1,3 +1,5 @@ +% 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} @@ -18,7 +20,8 @@ \usepackage[hidelinks,pdftitle={\paperName},pdfauthor={\author},pdfsubject={\title},pdfpagemode=UseOutlines,pdfdisplaydoctitle=true,pdflang=german]{hyperref} \usepackage{setspace} \usepackage{xcolor} -\usepackage[acronym,toc]{glossaries} +\usepackage[printonlyused, footnote]{acronym} +\usepackage[toc]{glossaries} \usepackage{listings} \usepackage{anyfontsize} @@ -27,7 +30,6 @@ \include{customization/variables} \include{customization/style} -\include{includes/acronyms} % Document \begin{document} @@ -54,20 +56,13 @@ % Abkürzungsverzeichnis \cleardoublepage - \printnoidxglossary[type=acronym,title=Abkürzungsverzeichnis,nonumberlist] - + \addcontentsline{toc}{chapter}{Abkürzungsverzeichnis} + \include{includes/acronyms} % Abbildungsverzeichnis \cleardoublepage \listoffigures - - % Quellcodeverzeichnis - %\cleardoublepage - %\renewcommand\lstlistlistingname{Quellcodeverzeichnis} - %\lstlistoflistings - - % Kapitel \cleardoublepage \input{content/00_einleitung.tex}