Seminar: Rechnerverbunde / Cluster Computing und Anwendungsbeispiel. Johannes Krafft Bodo Brand Thorsten Blank. Betreuer: Prof. Dr.

Größe: px
Ab Seite anzeigen:

Download "Seminar: Rechnerverbunde / Cluster Computing und Anwendungsbeispiel. Johannes Krafft Bodo Brand Thorsten Blank. Betreuer: Prof. Dr."

Transkript

1 Seminar: Rechnerverbunde / Cluster Computing und Anwendungsbeispiel Johannes Krafft Bodo Brand Thorsten Blank Betreuer: Prof. Dr. Rainer Werthebach Hochschule Aalen Sommersemester 2016

2 Ehrenwörtliche Erklärung Wir versichern hiermit, dass wir unsere Seminararbeit mit dem Thema»Rechnerverbunde / Cluster Computing«selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt haben. Bodo Brand, Thorsten Blank, Johannes Krafft 1

3 Zusammenfassung In dieser Arbeit behandeln wir die Grundlagen von Cluster Computing und erläutern einige Konzepte der Parallelität in den beiden Gebieten Hardware und Software. Dazu grenzen wir zunächst den Begriff»Cluster Computing«von anderen Begriffen und Themen ab und führen dann Anwendungszwecke von Clustern aus. Anschließend wird auf die Hardware von Clustern eingegangen und es werden Vor- und Nachteile von unterschiedlichen Methoden erläutert. Dabei kommt ein Clustereigenbau zum Einsatz, worauf wir einen Hashcracker implementiert haben, um die Schwierigkeiten von paralleler Programmierung zu erforschen.

4 MPP Massively Parallel Processor MPI Message Passing Interface SSH Secure Shell HPC High-Performance Computing SMB Server Message Block NFS Network Filesystem RAID Redundant Array of Inexpensive Disks 1

5 Abbildungsverzeichnis 3.1 Ein Setup ohne Failover-Funktionalität Beispiel-Setup eines Failover-Clusters Load-Balancer Zentralisiertes Session-Managment Asynchrones Session-Managment Bestimmung der optimalen Prozessoranzahl nach Amdahl Stromverbrauch ARM und X86/64 Prozessoren Leistung von ARM und X HA-Cluster mit zwei Knoten Netzwerktypen Unterschied bei Ethernet und SCI oder Myrine Hello World Beispiel mit MPI unter C Versuchsaufbau für einen experimentellen Cluster Parallelisierungsansatz MPI Hashcracker Parallelisierungsansatz MPI Hashcracker Finaler Parallelisierungsansatz MPI Hashcracker Geschwindigkeitsvergleich

6 Inhaltsverzeichnis 1 Einleitung (Bodo Brand) Motivation Ziel der Arbeit Vorgehen Grundlagen Cluster Computing (Bodo Brand) Definition Computer Cluster Abgrenzung von Begriffen und Verwendungszwecke Supercomputer Massively Parallel Processor Grid-Computing Cloud-Computing Verwendungszwecke(Johannes Krafft) Workstation Cluster Hochverfügbarkeitscluster Load-Balancing-Cluster High Performance Computing Cluster Hardware (Thorsten Blank) Prozessor Festplatten Speicher Speicherlose Knoten Knoten mit jeweils eigenem und geteiltem Speicher Knoten mit eigenem Speicher Netzwerk Implementation Betriebssysteme (Johannes Krafft) Windows HPC Linux Message Passing Interface (Bodo Brand) Einführung Programmiergrundlagen mit MPICH MPI Implementationen Vergleich

7 6 Anwendungsbeispiel (Bodo Brand) Wahl der Hardwarearchitektur Wahl der MPI Implementierung Installation und Konfiguration Anwendungsfall Hashcracker Einführung Umsetzung Geschwindigkeit (Bodo Brand) 29 8 Zusammenfassung und Ausblick (Bodo Brand) Erreichte Ergebnisse Ausblick

8 Kapitel 1 Einleitung (Bodo Brand) 1.1 Motivation Cluster Computer werden heutzutage in vielen Gebieten eingesetzt. Organisationen wie Hochschulen, Firmen und Forschungseinrichtungen benutzen diese in den unterschiedlichsten Gebieten. So kann ein Computer Cluster genutzt werden, um die Forschung bei Genomen, in der Meteorologie, Physik, Chemie oder bei der Herstellung von neuen Materialien zu unterstützen[1]. Computer Cluster können auch verschiedene Serviceleistungen einer großen Anzahl von Menschen zur Verfügung stellen. Die Möglichkeiten von Simulationen und Experimenten sind endlos. 1.2 Ziel der Arbeit Das Ziel der Arbeit ist es, die Funktionsweise eines Cluster Computers und deren Verwendungszwecke und Programmierschnittstellen zu verstehen und verständlich niederzuschreiben. Zudem wollen wir anhand eines eigenen Clusters, die Hardware und Software Komponenten installieren und eigene Software schreiben, um mit den Schwierigkeiten von paralleler Programmierung zu experimentieren und diese in dieser Arbeit teilen. 1.3 Vorgehen Als erstes haben wir nach einem Einführenden Gespräch von unserem betreuenden Prof. Dr. Rainer Werthebach einen Computer Cluster aus 4 Raspberry Pis erhalten, welchen wir mit entsprechender Software ausgerüstet haben. Durch Brainstorming haben wir schließlich nach Anwendungsfällen gesucht, welche Software wir für diesen Cluster implementieren wollen und haben uns für einen Hashcracker entschieden. Um die Implementation zu bewerkstelligen, suchten wir nach Tutorials, welche die Funktionsweise des parallelen Programmierens mit dem Message Passing Interface genau genug erläutern. Durch das Wissen aus dem Tutorial wurde dann der Hashcracker in Eigenproduktion erstellt. Um die Grundlagen und Methoden von Cluster Computing zu verstehen, haben wir nach einem entsprechenden Büchern recherchiert, welches das Themen Gebiet Cluster Computing möglichst gut abdecken. 5

9 Kapitel 2 Grundlagen Cluster Computing (Bodo Brand) 2.1 Definition Computer Cluster Ein Cluster ist eine Ansammlung von Dingen vom selben Typ, welches wächst und nahe beieinander erscheint [2]. Somit ist ein Computer Cluster ein Verbund aus mehreren Computern, welche zu einer Einheit verschmelzen. Die Computer werden dabei über ein Netzwerk verbunden und bieten je nach Einsatzgebiet mehr Geschwindigkeit, mehr Kapazität, bessere Datenintegrität, höhere Zuverlässigkeit und mehr Verfügbarkeit von Ressourcen, als ein herkömmlicher Computer [3]. Alle Rechnerknoten in einem Cluster haben dabei oft dieselbe Ausstattung an Hardware [4]. Neben diesen homogenen Clustern gibt es auch heterogene Cluster, die aus verschiedenen Betriebssystemen und Hardware bestehen [5]. 2.2 Abgrenzung von Begriffen und Verwendungszwecke Supercomputer Wie Jan Christian Meyer zu»what is the difference between a supercomputer and a computer cluster?«[6] schreibt, ist der Begriff Supercomputer ein Überbegriff für alle Computer, die Probleme lösen können, die so viel Rechenleistung benötigen, wie sonst kaum ein anderer Computer zu einer bestimmten Zeit. Die Art von Supercomputer kann sich über die Zeit ändern. So gibt es momentan viele Supercomputer vom Typ Cluster und MPP 1 [7] Massively Parallel Processor Ein MPP ist ein Computer, der stark zusammenhängende Komponenten hat, um parallele Rechnungen durchzuführen. Im Vergleich zu einem Cluster Computer, wie in Stackoverflow beschrieben [8], können die CPUs nicht voneinander getrennt laufen, sondern die gesamte Maschine wird als ein Computer angesehen. Da der Zusammenhang so stark ist, kann ein schneller Austausch zwischen den CPUs stattfinden. 1 Massively Parallel Processor 6

10 2.2.3 Grid-Computing Der Begriff Grid wird von dem englischen Begriff»Electrical Power Grid«abgeleitet, welches übersetzt Stromnetz heißt [9]. Die Idee dahinter ist, die Ressourcen unterschiedlicher Nutzer zu nutzen, wie Strom aus der Steckdose [9]. Somit verbindet Grid-Computing mehrere Computer an unterschiedlichen geografischen Stellen zusammen, um hohe Rechenleistung und Speicherkapazität zu erreichen. Dabei ist die Hardware der einzelnen Knotenpunkte im Vergleich zu einem Cluster Computer und MPP typischerweise heterogen [4]. Grids werden vornehmlich von einer bestimmten Gruppe von Nutzern aufgebaut und eingesetzt, die ein gemeinsames Vorhaben, z.b. die Durchführung wissenschaftlicher Simulationsexperimente, eint [10]. Dabei können unterschiedliche Gesellschaften verknüpft werden und zusammenarbeiten. So wurde 1997 versucht, den Supercomputer»High Performance Computing Center Stuttgart«mit dem»pittsburgh Supercomputing Centre«zu verbinden [9]. Wenn man zwei Cluster Computer verbindet, muss zudem eine hohe Anforderung an Sicherheit gewährleistet werden, da die Verbindung zwischen den zwei Clustern meist mit unsicheren Netzen verbunden ist [11] Cloud-Computing Cloud-Computing bezieht sich sowohl auf die Applikationen, die als Service über das Internet bereitgestellt werden, als auch auf die Hardware und Systemsoftware in den Datencentern, welche diesen Service bereitstellen. Die Hardware und Software des Datencenters ist dabei das, was wir als Cloud bezeichnen [12, S. 1]. So werden Dienstleistungen, wie Rechenleistung und Speicherkapazität, zur Verfügung gestellt und je nach Verbrauch abgerechnet. Im Vergleich zu Grid-Computing ist Cloud-Computing zentralisiert und wird lediglich von einer Gesellschaft betrieben [4]. 7

11 Kapitel 3 Verwendungszwecke(Johannes Krafft) Die Verwendungszwecke von Computerclustern sind vielseitig. Einige populäre Anwendungsbeispiele sollen in diesem Kapitel vorgestellt werden. 3.1 Workstation Cluster Das Ziel eines Workstation-Clusters ist eine»einheitliche Arbeitsumgebung unabhängig vom Arbeitsplatz«zu schaffen, sowie einen»geringer[en] Administrationsaufwand durch Homogenität der Maschinen«zu erzielen [13]. Zu einem Workstation-Cluster gehört üblicherweise eine zentrale Benutzerverwaltung, zentrale Benutzerverzeichnisse, zentrale Softwareverwaltung, ein zentrales Konfigurationsmanagment und automatisierte Installationsprozesse [13]. 3.2 Hochverfügbarkeitscluster Der Großteil der Serviceanbieter im Internet sind darauf angewiesen, dass ihre Dienste ohne Unterbrechung immer und überall erreichbar sind. Das Aussetzen einzelner Services, Softwareoder Hardwarekomponenten kann bei solchen Diensten schnell zum Totalausfall führen. Angenommen eine Webserver-Applikation läuft nur auf einem Server. Es reicht wenn eine Komponente ausfällt und die gehostete Webseite ist nicht mehr verfügbar (siehe Abbildung 3.1). Auch Wartungsarbeiten am Server wie ein Betriebssystem- oder Softwareupdate führen zwangsläufig zu kurzer Downtime. [14] Die Lösung für dieses Problem ist das Einrichten eines Hochverfügbarkeitsclusters (engl. Failover-Cluster). Das Konzept: Wichtige Komponenten in einem System werden mehrfach vorgesehen. Wenn eine Komponente ausfällt, wird ihre Aufgabe von einer anderen übernommen. Für jeden aktiven Server, der einen Dienst bereitstellt, muss mindestens ein äquivalenter Standby-Server vorgesehen sein, der einspringt, wenn der Dienst auf dem aktiven Server nicht mehr erreichbar ist.[14] Es gibt zwei Mechanismen, wie der Standby-Server feststellen kann, ob er übernehmen muss: Push Heartbeats: Der aktive Server sendet regelmäßig ein Signal an den Standby- Server. Wenn der Standby-Server für eine bestimmten Zeitraum kein Signal erhält, geht 8

12 Abbildung 3.1: Ein Setup ohne Failover-Funktionalität: Es reicht das eine Komponente ausfällt um den Dienst für den Client unerreichbar zu machen. [14] er davon aus das der Dienst auf dem aktiven Server momentan nicht verfügbar ist, und übernimmt selbst die Rolle des aktiven Servers. Pull Heartbeats: Der Standby-Server sendet regelmäßig Anfragen an den aktiven Server. Wenn er für einen bestimmten Zeitraum keine Antwort auf seine Anfragen erhält, übernimmt er. Heartbeats können auf verschiedenen OSI-Schichten eingesetzt werden. [14] Zum Beispiel könnte man auf IP-Ebene die Verbindung des Servers mit dem Internet prüfen und auf Anwendungsebene den Status der Software. Die große Frage ist, wie man die Standby-Server immer auf dem aktuellen Stand hält, sodass sie jederzeit einsatzbereit sind. Laut [14] gibt es drei Ansätze, dies zu gewährleisten: Transaction log: Der aktive Server logged alle Änderungen mit. In regelmäßigen Abständen lesen die Standby-Server den Log ein und holen die Änderungen nach. Hot standby: Änderungen am aktiven Server werden sofort auch auf dem Standby- Server vorgenommen. Alle Server sind somit immer auf dem aktuellen Stand. Shared storage: Die Server teilen sich alle einen gemeinsamen Speicher, und sind somit automatisch immer auf dem aktuellen Stand. (siehe Abbildung 3.2) Es ist wichtig, das immer nur ein Server eines Dienstes aktiv ist. Verklemmungen oder korrupte Daten sind sonst vorprogrammiert. Gewährleistet werden kann das mit einem Token, der den aktiven Server als solchen markiert. Bevor sich ein Server aktiv schaltet, muss er im Cluster prüfen, ob nicht ein anderer schon aktiv ist.[14] 3.3 Load-Balancing-Cluster Wenn ein Webservice erfolgreich ist und somit stark gefragt, benötigt der Anbieter enorme Rechenleistung, um dem Ansturm gewachsen zu sein. Ein einzelner Server kann nur eine bestimmte Anzahl an Anfragen bearbeiten. Die logische Konsequenz scheint zu sein, den Server aufzurüsten. Doch jede Architektur hat seine Limits. Die Lösung ist die Einrichtung eines Load-Balancing-Clusters. Das Prinzip: Die einkommenden 9

13 Abbildung 3.2: Beispiel-Setup eines Failover-Clusters: Heartbeats stellen die Funktionsfähigkeit des Aktiven Servers fest. Beide Server greifen auf eine gemeinsamen Speicher (Shared Storage) zu. [14] Abbildung 3.3: Ein Load-Balancer verteilt die Anfragen der Clients an die Server. [14] Anfragen werden auf mehrere, identische Server verteilt, um bei großem Ansturm trotzdem verfügbar zu sein (siehe Abbildung 3.3). Wenn mehr Anfragen bearbeitet werden müssen, muss schlicht und einfach ein weiterer Klon des Servers hinzugeschalten werden.[15] Ein Load-Balancer ist eine Komponente die einkommende Anfragen an die Server im Cluster weiterleitet. Es werden verschiedene Algorithmen verwendet, um die Anfragen möglichst optimal zu verteilen. Round-Robin Algorithmus: Alle Anfragen werden gleichmäßig auf alle Server verteilt, ungeachtet wie viele Anfragen ein Server aktuell schon bearbeitet. Es ist wichtig, dass alle Server gleich stark sind, ansonsten würde ein Teil immer überlastet sein während der andere Teil der Server nie seine ganze Leistung nutzen würde. Weighted Round-Robin Algorithmus: Es wird die Rechenleistung der einzelnen 10

14 Server mit in Betracht gezogen, wenn die Anfragen verteilt werden. Der Serveradministrator schätzt die Leistung der Server, entsprechend dieser Schätzung werden die Anfragen verteilt, sodass jeder Server prozentual gleich belastet wird. Least-Connection Algorithmus: Eine neue einkommende Verbindungsanfrage wird immer an den Server weitergeleitet, der die geringste Anzahl an momentan offenen Verbindungen hat. Load-Base Algorithmus: Einkommende Anfragen werden an den Server mit der in diesem Moment geringsten Auslastung weitergeleitet. Manche Load-Balancer haben auch noch eine Failover-Funktionalität, d.h. sie leiten keine Anfragen an Server weiter, die nicht mehr reagieren.[15] Wenn man die Anfragen so verteilt, tritt allerdings ein Problem auf: Ein Client muss möglicherweise in einer späteren Anfrage wieder erkannt werden und dementsprechend anders behandelt werden. Normalerweise sind die folgenden drei Methoden zum Speichern dieser benutzerbezogenen Informationen in einer sogenannten Session üblich: Der Client speichert die Session Informationen, z.b. in einem Cookie in seinem Browser. Die Daten werden auf dem Server gespeichert, der die Anfrage bearbeitet. Die Session Daten werden zusammen mit den anderen Nutzerdaten auf einem gemeinsamen Datenbankserver gespeichert. Die mittlere Möglichkeit funktioniert in Verbindung mit Load-Balancing nicht. Der Nutzer könnte bei der nächsten Anfrage an einen anderen Server geleitet werden, der ihn dann nicht wiedererkennt. Der Load-Balancer muss die Anfragen eines Clients also immer an den gleichen Server leiten. Das führt allerdings dazu, dass die Ausfallsicherheit für die Session dieses Clients nicht mehr gewährleistet ist, wenn der Server mit seiner Session ausfällt. Die Session-Daten können in der Konsequenz nicht auf dem Server gespeichert werden, sondern in einem eigenen, ausfallsicheren System. Das Load-Balancing Cluster greift also auf ein Hochverfügbarkeitscluster zu, in dem die Sessions gespeichert sind (engl. centralized state managment). (siehe Abbildung 3.4) Eine kostengünstigere Alternative wäre es, die Session Daten immer zwischen allen Servern zu synchronisieren, so dass jeder Server im Load-Balancing- Cluster immer alle Sessions kennt. (engl. asynchronous session state management) (siehe Abbildung 3.5)[15] 3.4 High Performance Computing Cluster Der wohl bekannteste Einsatz von Clustern ist die Verwendung als»supercomputer«. Beispiele für Einsatzgebiete sind: Wettersimulation Strömungssimulation Virtuelle Crashtests Chemische Simulation 11

15 Abbildung 3.4: Zentralisiertes Session-Managment [14] Abbildung 3.5: Asynchrones Session-Managment [14] 12

16 Kompilieren von Sourcecode [16] [17] Allen Beispielen gemeinsam ist ein enorm hoher Rechenaufwand. Ein normaler Heimcomputer würde viel zu lange an diesen Problemen rechnen. Die naheliegenste Lösung scheint zu sein, einfach eine schnelleren Prozessor zu entwickeln, um die Daten schneller verarbeiten zu können. Das ist jedoch nur auf den ersten Blick sinnvoll: Ein Prozessor verarbeitet Daten. Diese Daten müssen von irgendwo geladen und irgendwohin gespeichert werden. Wenn ein Prozessor schneller wird, müssen auch die Daten schneller herbeigeschafft werden. Die Daten können allerdings maximal mit Lichtgeschwindigkeit an den Prozessor geliefert werden. Es ist daher nicht möglich, mit immer schnelleren Prozessoren Berechnungen unendlich zu beschleunigen. Die Lösung ist, mit mehreren schwächeren Prozessoren gleichzeitig parallel an dem Problem zu arbeiten. Jeder einzelne Prozessor muss dadurch verhältnismäßig weniger Daten verarbeiten. [11, S. 4] Sei p die Anzahl der Prozessoren und π die Gesamtdauer der zu parallelisierenden Berechnung. Naiv könnte man folgende Formel über die Laufzeit der Berechnung aufstellen: T (p) = π p (3.1) Allerdings gibt es laut Amdahls Gesetz zwei Faktoren, die beim parallelisieren von Berechnungen beschränken. Zum einen können nicht alle Teile einer Berechnung parallelisiert werden. Selbst wenn der parallelisierte Teil der Berechnung gegen null konvergiert, gibt der sequentielle Teil σ somit die untere Schranke der Laufzeit an. Zum anderen müssen die Prozessoren während der Berechnung auch untereinander Informationen austauschen. Mit zunehmender Prozessorzahl nimmt der Kommunikationsaufwand zwischen den Prozessoren immer mehr Zeit in Anspruch. Ein Kommunikationsaufwand T c abhängig von der Prozessorzahl bremst somit die Rechenzeit: T (p) = σ + π p + T c(p) (3.2) Das Problem: Ab einer bestimmten Anzahl von Kernen wird der Kommunikationsaufwand so groß, dass die gesamte Berechnungszeit wieder zunimmt. Bei einem sequentiellen Anteil von 1ZE, einem parallelisierbaren Anteil von 10ZE und einem Kommunikationsaufwand von 0.5 ZE pro Prozessor ergibt sich beispielsweise eine optimale Prozessoranzahl von 4,5. (siehe Grafik 3.6) Aus dieser Erkenntnis muss der Schluss gezogen werden, dass sich mit dem Parallelisieren von einem Problem dieses sich nicht beliebig schnell berechnen lässt, aber das mit zunehmender Anzahl von Prozessoren zunehmend große Probleme effizient gelöst werden können. Es ist trotz allem immer noch wichtig den Kommunikationsoverhead möglichst gering zu halten. Bei der Größe eines Teilproblems spricht man von Granularität oder Körnigkeit. Um den Kommunikationsaufwand gering zu halten, gilt es eine möglichst grobe Granularität zu verwenden, d.h. möglichst große Teilprobleme in einem Stück zu berechnen, da feingranulare Programme sehr viel Zeit auf Kommunikation verwenden müssen. [11, S ] Die gerade erläuterte Theorie zur Parallelisierung von Problemen bezieht sich grundsätzlich erst einmal nicht nur auf Computer-Cluster. Moderne CPUs besitzen bis zu 8 oder mehr Prozessorkerne, die unabhängig voneinander rechnen. Auch ist es möglich, mehrere CPUs auf einem Motherboard mit gemeinsamem Speicher unterzubringen. Laut Bauke und Mertens ist jedoch ein PC mit vier Prozessoren deutlich teurer als vier PCs mit je einem Prozessor, da»der ungebremste Zugriff auf den gemeinsamen Speicher (und andere gemeinsam genutzte 13

17 Abbildung 3.6: Bestimmung der optimalen Prozessoranzahl nach Amdahl Komponenten) [...] eine aufwändige Elektronik [erfordert], und der Aufwand [...] schnell mit der Anzahl der Prozessoren [steigt]. [...] Multiprozessoren kommen deshalb für massiv parallele Anwendungen nicht in Frage.«[11, S. 23] Die Konsequenz ist der Verzicht auf gemeinsamen Hauptspeicher, was dann auf die Bildung eines Computerclusters hinausläuft. [11, S ] 14

18 Kapitel 4 Hardware (Thorsten Blank) Cluster können aus so gut wie jedem Computer mit Netzwerkschnittstelle erstellt werden. So gibt es bereits Cluster, welche aus Spielkonsolen wie der XBOX erstellt wurden [18]. Diese Konsolen unterscheiden sich in der Hardware wenig von handelsüblichen PCs und stellen eine Performance zur Verfügung, welche für aufwändige Spiele reichen muss. Da allerdings die vom Hersteller vorinstallierte Software nicht die benötigten Funktionalitäten zur Verfügung stellt, um daraus einen Cluster zu erstellen, wird hierbei zuerst das Betriebssystem gegen eine Linux Distribution ausgetauscht. Auf der anderen Seite können Cluster auch aus sehr vielen leistungsschwachen Knotenpcs bestehen. Dieses Konzept wurde auch bei dem später näher beschriebenen, eigenen Versuch durchgeführt, für dem ein Cluster aus vier Raspberrys verwendet wird. Diese Minipcs zeichnen sich durch eine geringe Größe und kleine Stückpreise aus. Bei dem neusten, den Raspberry Zero fehlt allerdings die bei dem Vorläufern noch vorhandene Netzwerkschnittstelle Ethernet. Diese kann durch einen USB zu Ethernet Adapter nachgerüstet werden, soweit man auf den USB-Anschluss verzichten kann. Cluster müssen nicht unbedingt aus gleich aufgebauten Computern bestehen, welche einen homogenen Cluster bilden, sondern können auch aus verschieden aufgebauten Knoten bestehen. Bei den heterogenen Clustern werden Knoten mit verschiedene Hardwarekonfiguration benützt. Diese Unterschiede können von verschieden großen Festplatten bis zu komplett verschiedenen Prozessorarchitekturen reichen[19]. Hierbei fragt sich allerdings ab einen gewissen Punkt, ob dies sinnvoll ist, da bei zu großen Unterschieden, wie zum Beispiel dem Mischen von ARM und X86/X64 Prozessorarchitekturen, die Software der einzelnen Knoten diesen Unterschieden angepasst werden muss. Problematisch wird dies vor allem, wenn Software wie beispielsweise MPI.NET mit Open MPI verwendet wird, welche für eine Architektur gar nicht oder nur in verschieden Version erhältlich ist. Dies hat sich uns in unseren Eigenversuch gezeigt. Obwohl Open MPI und MPI.NET Open Source ist, war es uns nicht möglich diese Software auf unsere Raspberrys zu installieren. Auch können solche Unterschiede bei der Entwicklung von Programmen wichtig sein, da z. B. nicht mehr davon ausgegangen werden darf, dass auf jedem Knoten dasselbe Problem z. B. in derselben Zeit gelöst werden kann. Im Nachfolgendem wird zwischen X86 und X64 nicht weiter unterschieden, da X64 hauptsächlich neben weiteren Erweiterungen, in Gegensatz zu X86, auf einer 64-Bit Architektur aufbaut, aber weiterhin großteils kompatibel zu seinen Vorgänger ist[20]. 15

19 4.1 Prozessor Cluster können wie oben bereits erwähnt aus den verschiedensten Computern erstellt werden. Das bedeutet allerdings zugleich auch, dass aus einer Vielzahl von verschiedenen Prozessoren für die Knoten ausgewählt werden kann. So sind z. B. sechs der Top zehn Cluster in November 2015 mit Intel Xeon E5 Prozessoren ausgestattet[7], diese haben bis zu 18 Kernen und eine Taktfrequenz von bis zu 3,5 GHz. So steht beim Planen eines Clusters die Entscheidung an, ob besonderer Wert auf die Anzahl der Kerne oder die Leistung der Einzelnen gelegt wird. Die Leistung der Kerne setzen sich sowohl aus der Taktzahl, den verwendeten Befehlssatz, sowie dessen Architektur zusammen [21]. Bei Aufgaben, welche sich gut in viele kleinere skalieren lässt, ist es oft vorteilhaft auf eine höhere Parallelität zu setzen, andernfalls ist vor allem die Einzelkernleistung entscheiden. Auch gibt es bei einigen Programmen, die zum Ausführen von Software auf Clustern dienen, teilweise Probleme bei der Verwaltung von mehreren Threads, da bei dem MPI Prozess entweder mehrere Threads die MPI Aufgaben selbstständig behandeln, oder alle MPI Aufrufe von einem einzigen verwaltet werden. Im letzten Fall kann dieser Thread zum Flaschenhals werden. Aber nicht nur im Punkt Performance, sondern auch die Fehleranfälligkeit erhöht sich durch sehr viele Threads [22]. Dieses Problem könnte bei dem nächsten Standard von MPI verringert werden, indem die Skalierbarkeit erhöht wird.[22, S. 78] Von Seiten der Prozessorarchitektur herrschen zur Zeit die X86 Prozessoren im Cluster Bereich vor. Die im direkten Vergleich zu den X86 energiesparendere Lösung ARM ist allerdings bei weitem noch nicht so leistungsfähig. Auch haben die ARM-Prozessoren den Nachteil, dass sie die Netzwerkschnittstelle nicht so gut mit Daten versorgen können, wie ihre X86 Konkurrenz. Somit findet man in High-Performance Computing Bereich vor allen X86 Prozessoren. Wird hingegen auf die Rechenleistung pro Watt oder pro Preis geachtet, kann ein Wechsel zu der ARM Architektur lohnend sein, da somit die Energiekosten gesenkt werden können. Auch soll, laut AMD, zukünftig ein Mix aus X86 und ARM Prozessoren angeboten werden.[23] 4.2 Festplatten Speicher Für die Verwaltung der Daten auf den Speichern der einzelnen Knoten gibt es mehrere Möglichkeiten. Hierfür gibt es mehrere Konzepte, welche untereinander noch gemischt werden können Speicherlose Knoten Dieses Konzept findet z. B. bei den sogenannten Pegasus Clustern Anwendung. Um die Kosten der Festplatte bei den einzelnen Knoten einzusparen, können die einzelnen auch über keine eigenen Festplatten verfügen[25]. Das Betriebssystem sowie alle weiteren Daten werden hierbei über das Netzwerk in den Arbeitsspeicher der einzelnen Knoten gespeichert, allerdings kann bereits das Betriebssystem mehrere Gigabyte in Anspruch nehmen wie später in 5.1 noch erwähnt wird. Dies spielt bei Betriebssystemen mit nur kleiner Größe keine so gewichtige Rolle mehr, da der Arbeitsspeicher in aktuellen PCs meist groß genug ist. Hierzu wird auf eine der Seiten, welche den Aufbau dieses Konzepts vertreten geschrieben:»this is hardly an issue, since 128 MByte out of a total RAM of 16 GByte is not really noticeable«[25]. 16

20 Abbildung 4.1: Im Diagramm ist zu sehen, dass die Leistungsaufnahme von den ARM Prozessoren geringer ist als die der X86 Konkurrenz. Lediglich bei dem A15 trifft dies nicht zu. Dieser ist allerdings auch auf hohe Performance ausgelegt. Je kleiner der Wert umso geringer ist der Stromverbrauch. [24] Knoten mit jeweils eigenem und geteiltem Speicher Damit jeder Knoten auf den selben Speicherbestand zurückgreift, kann unter Linux mit Network Filesystem bzw. unter Windows mit Server Message Block ein Ordner zwischen den Knoten geteilt werden oder die einzelnen Knoten wie bei 4.3 mit den Cluster-Speicher direkt über die üblichen Anschlüssen verbunden werden. Hierbei ist auf der Festplatte der Knoten jeweils das eigene Betriebssystem installiert. Neben diesem können noch weitere Daten wie zum Beispiel zur Auslagerung aus dem RAM lokal gespeichert werden. Somit ist es für den Administrator leichter den Cluster zu verwalten, da alle Knoten auf die selben Daten zurückgreifen. Wird nun eine Änderung an den Daten durchgeführt, ist diese für jedem Knoten im Cluster verfügbar. Nachteilig ist allerdings, dass wenn dieser Speicher ausfällt, alle Knoten im Cluster nicht mehr weiterarbeiten können. Somit sollte möglichst sichergestellt werden, dass dieser Cluster-Speicher nicht ausfällt. Dies kann z. B. durch ein Redundant Array of Inexpensive Disks sichergestellt werden. Bei den HA-Cluster findet man meist diesen Aufbau, damit bei einem Ausfall eines Knoten, ein anderer an den selben Daten weiterarbeiten kann [26]. Ein Nachteil falls der Speicher über das Netzwerk geteilt wird, ist, dass schon alleine für die Datenverwaltung die Netzwerkverbindung belastet wird. Auch ist die Zugriffszeit auf Festplatten, die direkt mit den Knoten verbunden sind, besser. Des Weiteren kann es zu Problemen führen, wenn mehrere Knoten gleichzeitig an ein und der selben Datei lesend bzw. schreibend zugreifen, da es sonst unter Umständen zu Speicherinkonsistenz führen könnte. Um dies zu vermeiden, müssen wie bei Multithreading die Zugriffe geregelt werden. Dies kann bei einen HA-Cluster nicht auftreten, da normalerweise je ein Knoten aktiv ist und ein anderer erst dessen Aufgaben übernimmt, wenn dieser ausfällt [26]. 17

21 Abbildung 4.2: Im Diagramm ist zu sehen, dass die Performance von den ARM Prozessoren geringer ist als die der X86 Konkurrenz. Je kleiner der Wert umso besser ist die Performance[24] Knoten mit eigenem Speicher Wenn es nicht nötig ist, dass jeder Knoten auf den gleichen Speicher zugreift kann jeder Knoten seinen eigenen Speicher besitzen, ohne dass dieser über das Netzwerk geteilt wird. In vielen Clustern müssen allerdings Daten synchron gehalten werden, oder Änderungen an allen Knoten gemacht werden, dies ist bei dieser Art der Speicherverwaltung allerdings nachteilig, da Änderungen an allen Knoten einzeln gemacht werden müssen. Bei dem versuchsweise aufgebauten Raspberry Cluster wurde z. B. auf einen Knoten alle Konfigurationen gemacht und dessen SD-Karte anschließend geklont. Damit das auszuführende Programm auf allen Knoten verfügbar ist, verteilt ein Bash-Script dieses vor dem Ausführen auf alle anderen Knoten. Diese auch als»shared-nothing«bekannte Architektur eignet sich besonders, wenn viele Lesezugriffe nötig sind. Somit findet man diesen Aufbau häufig bei "Data Warehouses". Ein weiterer Vorteil ist, dass ein so aufgebauter Cluster leicht erweitert werden kann, da neue Knoten nur über die Netzwerkschnittelle mit den Cluster verbunden werden müssen[27]. 4.3 Netzwerk Die»Grundvoraussetzung dafür, dass verschiedene Einzel-PCs gemeinsam ein Problem lösen können, ist das Netzwerk, das sie verbindet und über das die PCs ihre gemeinsame Arbeit koordinieren«[28, S. 53]. Dies ist besonders wichtig wenn die Anwendung, welche auf den Cluster läuft, einen hohen Kommunikationsaufwand zwischen den einzelnen Knoten erfordert. 18

22 Abbildung 4.3: HA-Cluster mit zwei Knoten, von denen einer ausgefallen ist und beide auf den selben Speicher zugreifen.[26] Reicht das gewählte Netzwerk nicht aus um die Übertragungszeiten klein zu halten, kann die volle Leistung des Clusters nicht ausgenutzt werden, da die einzelnen Knoten länger auf die Übertragung von Daten der anderen warten müssen. Um diesen Zeitverlust möglichst gering zuhalten, kann sowohl die Netzwerk Topologie als auch die verwendete Technologie den Bedürfnissen des Clusters entsprechend gewählt werden. Ein weiterer Punkt der bei der Wahl des Netzwerkaufbaus betrachtet werden muss sind die Aufwendungen, da nicht»selten die Kosten der Netzwerktechnik pro Knoten genauso hoch wie die der gesamten restlichen Hardware eines Knotens«[28, S. 54] sind. Wie in Abb. 4.4 erkennbar ist, ist der Aufruf von Daten aus dem Hauptspeicher im Vergleich zur Übertragung durch die Netzwerke in allen Punkten effektiver. Aus diesen Grund kann die Leistung des Cluster verbessert werden, indem möglichst wenig Kommunikation zwischen den einzelnen Knoten verursacht wird. Abhängig davon, ob besonders viele kleine Datenpakete oder zumeist größere übertragen werden sollen, liegt der Fokus auf die Größe der 19

23 Abbildung 4.4: Eigenschaften der Netzwerktypen sowie die des Hauptspeichers [29] Bandbreite bzw. auf eine geringe Latenzzeit.»Diese Verzögerungen«durch die Latenzzeit»fallen dann ins Gewicht, wenn die parallelen Anwendungen auf den verschiedenen Knoten in ständigem Kontakt miteinander sind - beispielsweise, weil sie permanent Statusinformationen austauschen müssen«[30]. Teilen sich die einzelnen Knoten die Bandbreite, wie bei Ethernet,»steht jedem Kommunikationskanal nur noch ein Bruchteil der Bandbreite zur Verfügung«[30]. Um diesen Nachteil auszugleichen, kann man in den einzelnen Knoten mehrere Netzwerkkarten verbauen. Bei Ethernet erzeugt vor allem der»zweimalige Weg durch die Netzwerkstacks der Betriebssysteme«[30] siehe Abb.4.5 eine höhere Latenzzeit. Dies wird bei SCI und Myrine umgangen, indem der TCP/IP-Stack umgangen wird. Abbildung 4.5: Rot: Nachricht mit SCI oder Myrine, Blau: Ethernet [30] Zu der Technologie QsNet bzw. QsNet² ist zu erwähnen, dass trotz der Ankündigung und Vorstellung der nächsten Version QsNet³ mit 25Gbit/s, was eine Verdreifachung der Bandbrei- 20

24 te in Vergleich zu der Vorversion darstellt, sich die Herstellerfirma Quadrics aus dem Geschäft zurückgezogen hat. Dieser Schritt erfolgte, nachdem ein Teil des Kernteams die Firma verlassen hatte, um selbst eine neue Firma zu gründen[31]. Bei der hauptsächlich für HPC entwickelten Netzwerktechnologie QsNet zeigen sich auch, die oben bereits erwähnten hohen Kosten pro Knoten, welche hierbei zwischen 1700 und 3300 US Dollar liegen. 21

25 Kapitel 5 Implementation 5.1 Betriebssysteme (Johannes Krafft)»Jeder Cluster Node ist ein eigenständiger Rechner welcher, in irgend einer Weise, ein Betriebs[s]ystem braucht.«[32] Windows HPC Seit 2006 gibt es den»windows Compute Cluster Server 2003«. Microsoft hat dafür ein eigenes MPI Protokoll names Microsoft Messaging Passing Interface definiert. [32] Ein Microsoft Compute Cluster besteht aus einem»head Node«und einem oder mehr»compute Nodes«. Der»Head Node«dient mittels eines User Interfaces als Zugriffspunkt auf das Cluster. Zur Steuerung kann man zwischen einem GUI-Tool namens»compute Cluster Job Manager«oder einem Kommandozeilen-Interface wählen. [33] Geyer kritisiert, das die Nodes einen überdurchschnittlich großen Arbeitsspeicherverbrauch haben und das auf jedem»compute Node«unnötigerweise ein Windows Desktop läuft. [32] Linux Eine Linux Distribution erfüllt laut Geyer»alle Anforderungen die an Cluster Betriebs[s]ysteme gestellt werden:«[32] Der Kernel ist von vornherein Netzwerkfähig, hat ein gutes Sicherheitskonzept implementiert und produziert weniger Overhead als die Konkurrenz von Microsoft. Durch den geringeren Ressourcenverbrauch ist die notwendige Hardware für die Nodes außerdem preisgünstiger. [32] Es besteht unter Linux natürlich immer die Möglichkeit sich selbst ein für das Rechnen im Cluster optimiertes Betriebssystem zu konfigurieren. Auch für diesen Zweck gibt es jedoch schon vorgefertigte Distributionen. Als Beispiel genannt werden kann die»rocks Cluster Distibution«basierend auf CentOS. Die Distribution wirbt für sich mit einer besonders einfachen Installation (»From Zero to Cluster in Just Three CDs«[34]) und vielen Erweiterungsmöglichkeiten.[34] 22

26 5.2 Message Passing Interface (Bodo Brand) Einführung Wenn man einen Cluster-Computer betreiben möchte, braucht man zu der entsprechenden Hardware auch Software, die ermöglicht, auf dem Cluster-Computer ein Programm auszuführen. Wie in dem Buch»Cluster Computing, Praktische Einführung in das Hochleistungsrechnen auf Linux-Clustern«[11] beschrieben, kommunizieren die einzelnen Knoten untereinander mit Nachrichtenaustausch. Dazu braucht der Programmierer Schnittstellen, um Daten zu senden und zu empfangen. Solche Schnittstellen wurden in dem Standard message-passing library interface specification oder kurz MPI festgelegt [35, S. 33]. Durch den Standard wurden die Syntax und Semantik für die Programmiersprachen C, C++ und FORTRAN bestimmt [11]. Die Implementation dieses Standards kann jedoch variieren. So stellen manche Supercomputerhersteller eigene MPI Implementationen bereit, die auf die Hardware optimiert sind [11] Programmiergrundlagen mit MPICH2 Die Implementation MPICH2 wird bei dem aktuell schnellsten Supercomputer der Welt eingesetzt [36] (Rangliste November 2015). Diese Implementation ist von Argonne National Laboratory entwickelt worden und unterstützt in der Version 2 auch Infiniband, eine Hochgeschwindigkeitsübertragungstechnik, neben TCP/IP-Netzen [11, S. 120]. Um das Programmieren eines MPI Programms zu erläutern, wird im folgenden»hello World«in C demonstriert. Wie man in 5.1 sehen kann, wird zunächst die MPI Bibliothek mit #include <mpi.h> eingebunden. Diese beinhaltet alle Befehle, die im MPI Standard festgelegt sind und alle mit einem»mpi_«beginnen [22, S. 60]. Nach dem Start des Programms wird zuerst die MPI-Umgebung initialisiert. Dazu wird folgende Schnittstelle verwendet: i n t MPI_Init ( i n t argc, char argv ) Keine MPI-Funktion außer MPI_Initalized darf vor MPI_Init aufgerufen werden [11, S. 384]. Durch den Befehl wird ein Kommunikator zwischen allen Prozessen, die entstanden sind, initialisiert, der im Code als MPI_COMM_WORLD erkannt werden kann. Zudem werden alle weiteren internen Variablen erstellt, die global verfügbar sind [37]. Die Argumente dieser Schnittstelle sind dabei nach dem MPI-2 Standard nicht mehr nötig und werden mit NULL- Pointern aufgefüllt. Der Kommunikator ist ein wichtiges Konzept von MPI und erlaubt die Kommunikation zwischen allen Prozessen, die der Kommunikator umfasst. So steht standardmäßig der Kommunikator MPI_COMM_WORLD zur Verfügung, der alle Prozesse umfasst, dieser kann jedoch aufgeteilt werden in Kommunikatoren, die weniger Prozesse umfassen [38]. Jeder Prozess bekommt durch den Kommunikator einen einzigartigen Rang (engl. rank), der im nächsten Schritt gelesen wird. Dazu benötigen wir die nächste Schnittstelle: i n t MPI_Comm_rank(MPI_Comm comm, i n t rank ) Der Rang, den jeder Prozess bekommt, ist eine Zahl zwischen Null und der Anzahl der Prozesse in dem angegeben Kommunikator. Da der Rang einzigartig ist, werden somit bei 4 Prozessen die Zahlen von Null bis Drei vergeben. Jeder Prozess hat nach diesem Schritt somit eine andere Zahl in der Variablen world_rank stehen. Im nächsten Schritt wird ausgelesen, wie der Hostname des Knotens heißt, auf dem der Code gerade ausgeführt wird. Dazu wird die folgende Schnittstelle verwendet: 23

27 Abbildung 5.1: Hello World Beispiel mit MPI unter C [37] i n t MPI_Get_processor_name ( char name, i n t name_length ) Nun schreiben alle Prozesse in die Standardausgabe ihren Hostnamen, ihren Rang und die Anzahl der Prozesse, die beim Starten entstanden sind. Ganz am Schluss ist noch folgende Schnittstelle wichtig: i n t MPI_Finalize ( ) Diese Funktion gibt alle benutzten Systemressourcen wieder frei und es dürfen keine MPI- Funktionen mehr aufgerufen werden [11] MPI Implementationen Vergleich Eine beliebte weitere kostenlose Alternative zu MPICH2 ist OpenMPI. OpenMPI bietet einige Features, wie z.b. eine Programmierschnittstelle für Java, die den aktuellsten MPI Standard unterstützt. Ältere Implementationen wie LAM/MPI, LA/MPI und FT-MPI sind in dieses Projekt mit eingeflossen [39]. Im Vergleich dazu wird die hochqualitative Implementierung von MPICH als Basis für neue MPI Implementation gewählt [40]. Aus MPICH wurde z.b. die kostenpflichtige Intel MPI Library erschaffen, welche mit höherer Performance im Vergleich zu OpenMPI wirbt [41]. Außerdem ist aus MPICH auch MVAPICH entstanden [40]. 24

28 Kapitel 6 Anwendungsbeispiel (Bodo Brand) 6.1 Wahl der Hardwarearchitektur Wie man in Abbildung 6.1 sehen kann, besteht unser experimenteller Cluster aus vier Raspberry Pis 2 Model B, welche über ein Switch verbunden sind. Abbildung 6.1: Versuchsaufbau für einen experimentellen Cluster 6.2 Wahl der MPI Implementierung Da die Funktionalitäten bei beiden Implementationen (OpenMPI und MPICH2) für unser Projekt keinen Unterschied machen, war unser Hauptmerkmal die einfache Installation der Implementation. Nach mehreren fehlgeschlagenen Versuchen, OpenMPI auf dem Raspberry PI zu kompilieren, entschieden wir uns schließlich MPICH2 zu nehmen, welches via Packagemanager ohne Probleme installiert werden konnte. 25

29 6.3 Installation und Konfiguration Um parallele Anwendungen auf allen 4 Raspberry Pis gleichzeitig laufen zu lassen, haben wir auf einem Raspberry Pi MPICH2 installiert und anschließend das Image auf die anderen Raspberries geklont. Damit die einzelnen Knotenpunkte des Clusters untereinander kommunizieren können, muss der Host, der den MPI Prozess startet, eine Secure Shell Verbindung zu den anderen Knotenpunkten aufbauen können, ohne dass eine Passworteingabe erforderlich ist. Dazu wird mit dem Befehl ssh-keygen -t rsa -b 2048 ein öffentlicher und privater Schlüssel erstellt, welcher auf dem RSA Kryptographieverfahren beruht. Anschließend wird an jeden Raspberry Pi mit dem Befehl ssh-copy-id pi@pixx der öffentliche Schlüssel übertragen. In unserem Testcluster kann nun der Raspberry Pi 01 auf die Raspberry Pis über SSH zugreifen, ohne ein Passwort einzugeben (vgl. Abbildung 6.1). Über ein Hostfile kann nun jeder Hostname oder jede IP-Adresse eingetragen werden, welche dann beim Start des Programms mit angegeben werden. 6.4 Anwendungsfall Hashcracker Einführung Ein typisches Anwendungsgebiet von hoher Rechenleistung und Parallelität ist das Knacken von Passwörtern. Da Passwörter oft als Hash in einer Datenbank gespeichert werden [42], liegt es nahe, ein Programm zu entwerfen, welches alle möglichen Kombinationen über ein begrenztes Alphabet durchtestet und schaut, welches Wort den entsprechenden Hashwert ergibt. Dabei verzichten wir darauf, die Möglichkeit zu geben, einen Salt und/oder Pepper an das Passwort anzuhängen, um die Komplexität des Programms zu vermindern Umsetzung Um den Hashcracker umzusetzen, haben wir uns zunächst überlegt, wie man den Prozess parallelisieren kann. Die Idee, die wir zunächst dabei verwendet haben, ist ein Zusammenspiel zwischen dem Rang, den jeder Prozess bekommt und der Anzahl der Prozesse insgesamt. Dazu ist in 6.2 der entsprechend optimierte Pseudocode zu sehen. Durch diesen Ansatz über- Abbildung 6.2: Parallelisierungsansatz MPI Hashcracker springt jeder Prozess die Aufgaben der anderen Prozesse. Jedoch ist dieser Ansatz nicht sehr 26

30 effizient, da einige Operationen wie z.b. Subtraktion und Inkrementieren wegen dem Überspringungsprozess so oft ausgeführt werden, dass man dies deutlich an der Geschwindigkeit merkt. Um die Performance lindernden Operationen aus der Schleife herauszunehmen, benötigt man einen anderen Ansatz. Die Idee beinhaltet dabei eine Funktion, die die folgende Schnittstelle aufweist: i n t g enerate ( long start_index, long end_index ) Man gibt dieser Funktion einen start_index, ab der wievielten Buchstabenkombination angefangen werden soll und einen end_index, ab der wievielten Buchstabenkombination aufgehört werden soll. Somit würden mit dem Alphabet abc und dem Aufruf»generate(1,5)«die Kombinationen: a,b,c,aa,ba durchgetestet werden und mit dem Aufruf»generate(6,8)«die Kombinationen: ca, ab und bb. Hierbei wird zunächst anhand dem start_index die Wortlänge und der Offset zum ersten Wort der Wortlänge berechnet. Dazu kommen die folgenden Formeln zum Einsatz: Wortlänge = (int)(log(start_index*(anzahl_buchstaben-1))/log(anzahl_buchstaben)) Offset = start_index-((pow(anzahl_buchstaben,wortlänge-anzahl_buchstaben) /(anzahl_buchstaben-1))-1 Bei einem start_index von 6 ist die Wortlänge 2 mit einem Offset von 2 zu dem ersten Wort der Wortlänge. Wenn i die Position des Buchstabens vom Wort ist, kann man nun mit der Formel ((Offset/pow(Wortlänge,i)))%Wortlänge das Anfangswort generieren. Ab diesem Startwort werden nun end_index - start_index viele weitere Kombinationen durchgetestet und diese geben dann zurück, ob das gesuchte Passwort dabei war oder nicht. Nun könnte man theoretisch alle Aufgaben auf alle Prozessoren aufteilen wie in Abbildung 6.3. Die Anzahl Abbildung 6.3: 2. Parallelisierungsansatz MPI Hashcracker der Aufgaben ist in Abbildung 6.3 die Anzahl aller Kombinationsmöglichkeiten bis zu einer bestimmten maximalen Wortgröße, die das Passwort haben darf. Dieser Ansatz hat jedoch zwei Probleme. Das erste Problem ist, dass je nachdem wie viele Aufgaben, also wie viele Kombinationen es insgesamt gibt, sich diese nicht fair auf eine bestimmte Anzahl Prozesse aufteilen lassen. Bei diesem Ansatz könnten am Schluss durch Rundungsfehler Kombinationen weggelassen werden. Das zweite Problem ist, dass durch die Tatsache, dass es bei größeren Wortgrößen wesentlich mehr Kombinationen gibt, die meisten Prozesse an den größten Wortgrößen arbeiten werden und extrem wenige Prozesse an den kleinen Wortgrößen. Das heißt, wenn ich einen Hashcracker mit der maximalen Wortgröße 8 laufen lasse, dann sind 7 von 8 Prozessen mit der Wortgröße 8 beschäftigt und nur einer mit der Wortgröße 1 bis 7. Das heißt, es findet ein Passwort relativ spät, wenn die Wortgröße kleiner als 8 ist. Aus unserer Sicht logisch wäre es, erst die kleinen Passwörter gemeinsam durchzuprobieren und dann progressiv 27

31 sich in der Wortlänge zu steigern, da man dann den Fortschritt besser einschätzen kann und schon nach kurzem weiß, ob das Passwort bei den kleineren Wortlängen dabei ist oder es sich eventuell gar nicht mehr lohnt weiterzusuchen, da bereits eine bestimmte Wortlänge erreicht ist, die einen zu großen zeitlichen Aufwand benötigen würde. Um beide Probleme zu lösen, haben wir schließlich eine passende Lösung entwickelt, welche man in Abbildung 6.4 sehen kann. Die Variable Alphabet ist dabei die Anzahl der Buchstaben im vorgegebenen Alphabet, von Abbildung 6.4: Finaler Parallelisierungsansatz MPI Hashcracker dem alle Kombinationen durchgetestet werden sollen. Wie man in Abbildung 6.4 sehen kann, wird zunächst die Anzahl aller Kombinationen berechnet und in anzahl_aufgaben gespeichert. Daraufhin wird eine sinnvolle Paketgröße festgelegt. Wenn es genug Prozesse gibt, dass alle Kombinationen aufgeteilt werden können, ohne dass einer zu viele bekommen würde, dann wird die entsprechende Paketgröße mit len_dictionary/world_size berechnet, andernfalls ist eine maximale Paketgröße gesetzt, welche bevorzugt genommen wird, wenn die Pakete zu groß werden würden. Die maximale Paketgröße kann von System zu System variieren und umso größer man diese wählt, umso länger braucht ein Prozess das Paket abzuarbeiten. Das if in Zeile 10 von Abbildung 6.4 sorgt dafür, dass, wenn der letzte Prozess über die maximale Aufgabenanzahl geht, der end_index entsprechend angepasst wird, um eine Punktlandung auf die maximale Aufgabenanzahl zu schaffen. Wenn ein Prozess die Antwort gefunden hat, ruft er am Schluss MPI_Abort(MPI_COMM_WORLD, 0) auf, um alle anderen Prozesse anzuhalten. 28

32 Kapitel 7 Geschwindigkeit (Bodo Brand) Um die Geschwindigkeit des Hashcrackers zu testen, ließen wir alle Passwörter über dem Alphabet a-z bis zur Länge 5 durchtesten und haben dann die Anzahl Passwörter pro Sekunde berechnet aus alle Kombinationen/gebrauchte Zeit. Es gibt mögliche Kombinationen und diese werden in Pakete geteilt und an die einzelnen Prozesse verteilt. Da die Zeit erst gestoppt wird, wenn der letzte Prozess fertig ist, ist es wichtig die Paketgröße so zu wählen, dass die Aufgaben fair verteilt werden. Wenn beispielsweise die Paketgröße wäre und 8 Prozesse die Aufgabe bearbeiten sollen, dann müssen vier Prozesse Kombinationen mehr machen als drei der anderen Prozesse. Der achte Prozess müsste mehr Kombinationen durchtesten. Das würde das Ergebnis verfälschen. Somit haben wir die Paketgröße auf festgelegt, damit der Mehraufwand einiger Prozesse keine Rolle mehr spielt. Zudem ist die Anzahl Prozesse ein entscheidendes Kriterium für die Geschwindigkeit, da die CPU optimal ausgelastet werden sollte, um die höchste Geschwindigkeit zu erreichen. Deshalb wurden die Tests auf einer Zweierpotenz an Prozessen durchgeführt, damit die Prozesse sich optimal auf die verschiedenen Raspberry Pis verteilen können. Wenn beispielsweise acht Prozesse auf vier Raspberries ausführen möchte, dann werden automatisch zwei Prozesse pro Raspberry ausgeführt. Eine Faustregel für die Festlegung der Anzahl Prozesse pro Host ist, dass man einen Prozess pro CPU Kern ausführt, jedoch gibt es auch»hyperthreaded cores«, welche mehr als einen Prozess pro Kern gleichzeitig abfertigen können [43]. So wird, wie in Abbildung 7.1: Geschwindigkeitsvergleich Abbildung 7.1 zu sehen, bei einem Mac Book Pro Mid 2014 ein höherer Durchsatz an Passwörtern pro Sekunde gemessen, wenn man vier Prozesse statt zwei Prozesse benutzt, obwohl der Prozessor zwei physikalische Kerne hat. Die MPICH2 FAQ Seite[44] empfiehlt, nicht mehr 29

33 Prozesse zu nehmen als CPU Kerne, da es sonst zu hohen Performanceverlusten kommen kann. Dieses Verhalten kann man hauptsächlich an allen vier Raspberry Pis und dem Intel Core i7 feststellen. Einflüsse, die nicht beachtet wurden, sind die Betriebssystemauslastung, RAM-Geschindigkeit und weitere Einflüsse, die hier einen Unterschied machen können. 30

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

Fragen und Antworten. Kabel Internet

Fragen und Antworten. Kabel Internet Fragen und Antworten Kabel Internet Inhaltsverzeichnis Inhaltsverzeichnis...II Internetanschluss...3 Kann ich mit Kabel Internet auch W-LAN nutzen?...3 Entstehen beim Surfen zusätzliche Telefonkosten?...3

Mehr

Anleitung zur Installation des Printservers

Anleitung zur Installation des Printservers Anleitung zur Installation des Printservers 1. Greifen Sie per Webbrowser auf die Konfiguration des DIR-320 zu. Die Standard Adresse ist http://192.168.0.1. 2. Im Auslieferungszustand ist auf die Konfiguration

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Installation OMNIKEY 3121 USB

Installation OMNIKEY 3121 USB Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,

Mehr

Abbildung 8.1: Problem mit dem Zertifikat. 2. Melden Sie sich am imanager als admin an. Die Anmeldung erfolgt ohne Eingabe des Kontextes: 8-2

Abbildung 8.1: Problem mit dem Zertifikat. 2. Melden Sie sich am imanager als admin an. Die Anmeldung erfolgt ohne Eingabe des Kontextes: 8-2 Abbildung 8.1: Problem mit dem Zertifikat 2. Melden Sie sich am imanager als admin an. Die Anmeldung erfolgt ohne Eingabe des Kontextes: 8-2 Drucken im lokalen Netz Abbildung 8.2.: imanager-anmeldung 3.

Mehr

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005 Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.

Mehr

Installation LehrerConsole (für Version 6.2)

Installation LehrerConsole (für Version 6.2) Dr. Kaiser Systemhaus GmbH Köpenicker Straße 325 12555 Berlin Telefon: (0 30) 65 76 22 36 Telefax: (0 30) 65 76 22 38 E-Mail: info@dr-kaiser.de Internet: www.dr-kaiser.de Installation LehrerConsole (für

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

IBM Software Demos Tivoli Provisioning Manager for OS Deployment Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,

Mehr

Installationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0

Installationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0 Installationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0 Inhaltsverzeichnis 1 Vorbemerkung 2 2 Mindestanforderungen an Ihr System 3 3 Sicherheitsmaßnahmen

Mehr

Workshop: Eigenes Image ohne VMware-Programme erstellen

Workshop: Eigenes Image ohne VMware-Programme erstellen Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

ANYWHERE Zugriff von externen Arbeitsplätzen

ANYWHERE Zugriff von externen Arbeitsplätzen ANYWHERE Zugriff von externen Arbeitsplätzen Inhaltsverzeichnis 1 Leistungsbeschreibung... 3 2 Integration Agenda ANYWHERE... 4 3 Highlights... 5 3.1 Sofort einsatzbereit ohne Installationsaufwand... 5

Mehr

Internet online Update (Mozilla Firefox)

Internet online Update (Mozilla Firefox) Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Mozilla Firefox und gehen auf unsere Internetseite:

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Informationen zum neuen Studmail häufige Fragen

Informationen zum neuen Studmail häufige Fragen 1 Stand: 15.01.2013 Informationen zum neuen Studmail häufige Fragen (Dokument wird bei Bedarf laufend erweitert) Problem: Einloggen funktioniert, aber der Browser lädt dann ewig und zeigt nichts an Lösung:

Mehr

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

WinVetpro im Betriebsmodus Laptop

WinVetpro im Betriebsmodus Laptop WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online

Mehr

BELIEBIG GROßE TAPETEN

BELIEBIG GROßE TAPETEN MODERNERES DESIGN 2 HTML-AUSGABEN 3 GESCHWINDIGKEIT 3 BELIEBIG GROßE TAPETEN 3 MULTIGRAMME 3 AUSGABEPFADE 3 INTEGRIERTER FORMELEDITOR 4 FEHLERBEREINIGUNGEN 5 ARBEITSVERZEICHNISSE 5 POWERPOINT 5 HINWEIS

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Manchester Codierung sowie Differenzielle Manchester Codierung

Manchester Codierung sowie Differenzielle Manchester Codierung Manchester Codierung sowie Differenzielle Manchester Codierung Nadine Sass 1 von 8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Das Ethernet... 4 Das IEEE 802.3 Ethernet Paketformat...

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Terminabgleich mit Mobiltelefonen

Terminabgleich mit Mobiltelefonen Terminabgleich mit Mobiltelefonen Sie können Termine- und Aufgaben aus unserem Kalender, sowie die Adressdaten aus dem Hauptprogramm mit Ihrem Mobiltelefon abgleichen. MS Outlook dient dabei als Schnittstelle

Mehr

EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil)

EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil) EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil) Die Open Source-Virtualisierung VirtualBox macht es möglich, Windows XP unter Windows 7 64-Bit laufen zu

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

teamsync Kurzanleitung

teamsync Kurzanleitung 1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Windows 98 / Windows NT mit NCP WAN Miniport-Treiber 23. Oktober 1998

Windows 98 / Windows NT mit NCP WAN Miniport-Treiber 23. Oktober 1998 Windows 98 / Windows NT mit NCP WAN Miniport-Treiber 23. Oktober 1998 XBMPD Windows 98 mit NCP WAN Miniport-Treiber 3 Benötigte Hard- und Software: 1. NCP ISDN ARROW Karte oder Box 2. Ihre CD-Rom mit dem

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT Seite 1/7 GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT ZENTRAL LOKALE MANAGEMENT-PLATTFORM FÜR EINE W ELTWEIT SICHERE INDUSTRIELLE KOMMUNIKATION. Seite 2/7 Auf den folgenden Seiten

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

FRILO-Aktuell Ausgabe 2/2013

FRILO-Aktuell Ausgabe 2/2013 FRILO-Aktuell aus dem Hause Nemetschek Frilo, speziell für unsere Software-Service-Kunden, informiert Sie über aktuelle Entwicklungen, Produkte und Neuigkeiten. Inhalt Effektives Arbeiten mit dem Frilo.Document.Designer

Mehr

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand 29.06.11

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand 29.06.11 Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt T-Systems International GmbH Version 1.0 Stand 29.06.11 Impressum Herausgeber T-Systems International GmbH Untere Industriestraße

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

- Tau-Office UNA - Setup Einzelplatzinstallation. * Der griechische Buchstabe T (sprich Tau ) steht für Perfektion. Idee und Copyright: rocom GmbH

- Tau-Office UNA - Setup Einzelplatzinstallation. * Der griechische Buchstabe T (sprich Tau ) steht für Perfektion. Idee und Copyright: rocom GmbH - Tau-Office UNA - Setup Einzelplatzinstallation * Der griechische Buchstabe T (sprich Tau ) steht für Perfektion. Idee und Copyright: rocom GmbH Eichenstraße 8a, 83083 Riedering Zentrale: 08036/94 20

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Fernzugriff auf das TiHo-Netz über das Portal

Fernzugriff auf das TiHo-Netz über das Portal Stiftung Tierärztliche Hochschule Hannover University of Veterinary Medicine Hannover Der Präsident Stabstelle TiHo-IDS Fernzugriff auf das TiHo-Netz über das Portal In dieser Anleitung wird beschrieben,

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

Vorstellung - "Personal Remote Desktop" für (fast) alle Hardwareplattformen und Betriebssysteme

Vorstellung - Personal Remote Desktop für (fast) alle Hardwareplattformen und Betriebssysteme Vorstellung - "Personal Remote Desktop" für (fast) alle Hardwareplattformen und Betriebssysteme Heute möchte ich euch die meiner persönlichen Meinung nach sehr gute Personal Remote Desktop Software der

Mehr

Simulation LIF5000. Abbildung 1

Simulation LIF5000. Abbildung 1 Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles

Mehr

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms

Mehr

TeamSpeak3 Einrichten

TeamSpeak3 Einrichten TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt. FolderShare Installation & Konfiguration Installation Eine kostenlose Version von FolderShare kann unter http://www.foldershare.com/download/ heruntergeladen werden. Sollte die Installation nicht automatisch

Mehr

Windows Vista Security

Windows Vista Security Marcel Zehner Windows Vista Security ISBN-10: 3-446-41356-1 ISBN-13: 978-3-446-41356-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41356-6 sowie im Buchhandel

Mehr

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. Inhalt 1 Übersicht 2 Anwendungsbeispiele 3 Einsatzgebiete 4 Systemanforderungen 5 Lizenzierung 6 Installation 7 Key Features 1 Übersicht MIK.mobile bietet umfangreiche Funktionalität für Business Intelligence

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

Redundantes Speichern

Redundantes Speichern Redundantes Speichern Höchste Verfügbarkeit und größtmögliche Datensicherheit durch paralleles Speichern in EBÜS Status: Freigegeben Dieses Dokument ist geistiges Eigentum der Accellence Technologies GmbH

Mehr

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten Der Konfigurations-Assistent wurde entwickelt, um die unterschiedlichen ANTLOG-Anwendungen auf den verschiedensten Umgebungen automatisiert

Mehr

Mail-Signierung und Verschlüsselung

Mail-Signierung und Verschlüsselung Mail-Signierung und Verschlüsselung ab Release-Version 2013.02, ein kostenlos zur Verfügung gestelltes Feature! Elektronische Post ist aus unserem privaten und beruflichen Leben nicht mehr wegzudenken.

Mehr

Persona-SVS e-sync GUI/Client Installation

Persona-SVS e-sync GUI/Client Installation Persona-SVS e-sync GUI/Client Installation 2014 by Fraas Software Engineering GmbH (FSE). Alle Rechte vorbehalten. Fraas Software Engineering GmbH Sauerlacher Straße 26 82515 Wolfratshausen Germany http://www.fraas.de

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

STRATO Mail Einrichtung Mozilla Thunderbird

STRATO Mail Einrichtung Mozilla Thunderbird STRATO Mail Einrichtung Mozilla Thunderbird Einrichtung Ihrer E-Mail Adresse bei STRATO Willkommen bei STRATO! Wir freuen uns, Sie als Kunden begrüßen zu dürfen. Mit der folgenden Anleitung möchten wir

Mehr

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER Diese Anleitung dient dazu, Sie durch den Installations- und Konfigurationsprozess für das gemeinsame Verwenden einer zentralen

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet

Mehr

ProSeminar Speicher- und Dateisysteme

ProSeminar Speicher- und Dateisysteme ProSeminar Speicher- und Dateisysteme Netzwerkspeichersysteme Mirko Köster 1 / 34 Inhalt 1. Einleitung / Motivation 2. Einsatzgebiete 3. Fileserver 4. NAS 5. SAN 6. Cloud 7. Vergleich / Fazit 8. Quellen

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Hilfedatei der Oden$-Börse Stand Juni 2014

Hilfedatei der Oden$-Börse Stand Juni 2014 Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten

Mehr

Windows Server 2012 RC2 konfigurieren

Windows Server 2012 RC2 konfigurieren Windows Server 2012 RC2 konfigurieren Kurzanleitung um einen Windows Server 2012 als Primären Domänencontroller einzurichten. Vorbereitung und Voraussetzungen In NT 4 Zeiten, konnte man bei der Installation

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

Systemvoraussetzungen:

Systemvoraussetzungen: Systemvoraussetzungen: Allgemein Der rechnungsmanager ist eine moderne Softwarelösung, welche mit geringen Systemvoraussetzungen betrieben werden kann. Die Anwendung besteht u.a. aus den Modulen Server-Dienste

Mehr

SMS/ MMS Multimedia Center

SMS/ MMS Multimedia Center SMS/ MMS Multimedia Center der BEYOND THE NET GmbH BEYOND THE NET GmbH Seite 1 Unser Multimedia Center ist eine WEB basierende Anwendung, die es ermöglicht von einer Zentrale aus, viele Mitarbeiter zu

Mehr

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2 Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2 DynDNS-Accounts sollten in regelmäßigen Abständen mit der vom Internet-Provider vergebenen IP- Adresse (z.b. 215.613.123.456)

Mehr

Anleitung: DV4Mini auf einem Raspberry Pi

Anleitung: DV4Mini auf einem Raspberry Pi Anleitung: DV4Mini auf einem Raspberry Pi Präambel OE7BSH Diese Anleitung wurde am 8. September 2015 nach aktuellen release Status (DV4Mini 1.4) erstellt. Nachdem der DV4Mini quasi work in progress ist,

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

C++ Tutorial: Timer 1

C++ Tutorial: Timer 1 C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG von Urs Schaffer Copyright by Urs Schaffer Schaffer Consulting GmbH Basel www.schaffer-consulting.ch Info@schaffer-consulting.ch Haben Sie gewusst dass... >

Mehr

1. Einleitung. 1.1. Was ist die App Listini. 1.2. Was benötigen Sie dazu. 1.3. Wie gehen Sie vor

1. Einleitung. 1.1. Was ist die App Listini. 1.2. Was benötigen Sie dazu. 1.3. Wie gehen Sie vor 1. Einleitung 1.1. Was ist die App Listini Die App Listini ist eine Anwendung für Ihr ipad oder Ihr Android-Gerät, welche Ihnen das Lesen und das Nachschlagen in Preislisten, Katalogen sowie der Fotogalerie

Mehr

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Verwaltungsdirektion Informatikdienste Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Inhaltsverzeichnis Einleitung... 3 Installation WSUS Server... 4 Dokumente... 4 Step by Step Installation...

Mehr

Verwalten und Organisieren von Fotos,

Verwalten und Organisieren von Fotos, Verwalten und Organisieren von Fotos, Datensicherung auf einen externen Datenträger durchführen, Datensicherung auf externe Datenträger - Datensicherheit Grundsätze 02 - Sicherungsmethode / FreeCommander

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1): Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Installationsleitfaden kabelsafe backup professional unter MS Windows

Installationsleitfaden kabelsafe backup professional unter MS Windows Installationsleitfaden kabelsafe backup professional unter MS Windows Installationsanleitung und Schnelleinstieg kabelsafe backup professional (kabelnet-obm) unter MS Windows Als PDF herunterladen Diese

Mehr

Drucken aus der Anwendung

Drucken aus der Anwendung Drucken aus der Anwendung Drucken aus der Anwendung Nicht jeder Großformatdruck benötigt die volle Funktionsvielfalt von PosterJet - häufig sind es Standarddrucke wie Flussdiagramme und Organigramme die

Mehr

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Veröffentlicht Januar 2009 Copyright 2009 Helmut Schottmüller Inhaltsverzeichnis 1.

Mehr

Anleitung zur Durchführung des Firmware-Updates. HomePilot 1 via Upgrade-USB-Stick

Anleitung zur Durchführung des Firmware-Updates. HomePilot 1 via Upgrade-USB-Stick Anleitung zur Durchführung des Firmware-Updates HomePilot 1 via Upgrade-USB-Stick Sehr geehrter Kunde, wir von RADEMACHER freuen uns, dass Sie Ihren HomePilot der ersten Generation auf den neuesten Software-Stand

Mehr

Bedienungsanleitung Anrufbeantworter für digitale Telefone Alcatel 4039

Bedienungsanleitung Anrufbeantworter für digitale Telefone Alcatel 4039 Bedienungsanleitung Anrufbeantworter für digitale Telefone Alcatel 4039 Inhaltsverzeichnis Version 09/10 1 Einleitung 3 2 Erstaktivierung des Anrufbeantworters 5 2.1 Erläuterungen der einzelnen Schritte

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr

Mehr

Whitepaper. Produkt: combit Relationship Manager. combit Relationship Manager und Terminalserver. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. combit Relationship Manager und Terminalserver. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager combit Relationship Manager und Terminalserver combit Relationship Manager und Terminalserver - 2 - Inhalt Einführung

Mehr