Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster...

23
Center for Information Services and High Performance Computing (ZIH) Cluster Computing & OpenSource Ein ¨ Uberblick 15. M¨ arz 2009 N¨othnitzer Straße 46 01187 Dresden INF 1038 +49 351 - 463 38781 Robin Geyer Foliensatz Verf¨ ugbarkeit der Folien Vorlesungswebsite: http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/ zih/lehre/ws0910/lctp 2/86 Inhalt 1 Einf¨ uhrung / Motivation 2 Begriffe, Basics und Architekturen 3 Systemsoftware 4 Anwendungssoftware / Optimierung 5 Quellen 3/86 1 Einf¨ uhrung / Motivation Clusterchallenge Vorlesung High Performance Computing 4/86

Transcript of Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster...

Page 1: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Center for Information Services and High Performance Computing (ZIH)

Cluster Computing & OpenSource

Ein Uberblick

15. Marz 2009

Nothnitzer Straße 4601187 DresdenINF 1038+49 351 - 463 38781

Robin Geyer

m

Foliensatz

Verfugbarkeit der Folien

Vorlesungswebsite:http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/

zih/lehre/ws0910/lctp

2/86

Inhalt

1 Einfuhrung / Motivation

2 Begriffe, Basics und Architekturen

3 Systemsoftware

4 Anwendungssoftware / Optimierung

5 Quellen

3/86

1 Einfuhrung / MotivationClusterchallengeVorlesungHigh Performance Computing

4/86

Page 2: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Clusterchallenge

Supercomputing: Konferenz mit angeschlossenen WettbewerbenClusterchallenge: 3kW Strom, vorgegebene Software, viele Jobs(unterschiedliche Punkte), 44h Zeit. Gewinner ist der der die meistenPunkte geholt hat.

5/86

Clusterchallenge / Ergebnis

6/86

Motivation fur Vorlesung / Cluster in Top500

7/86

Motivation fur Vorlesung / Weitere Grunde

Erfahrungen aus Clusterchallenge weitergeben

Zum ersten Mal Vorlesung/Praktikum zum Clusterbau undAdministration

Theoretische Betrachtungen mit praktischen Erfahrungen untermauern

Nachstes Siegerteam fur Clusterchallenge ausbilden?!?

8/86

Page 3: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Wozu High Performance Computing (HPC)?

Simulation

Komplexe Systeme modellieren ohne aufwandige ExperimenteGeringe Kosten im Vergleich zu ExperimentenSpater im Praktikum benutzte Software: POVRay und WPP

9/86

Wozu High Performance Computing (HPC)?

Simulation

Komplexe Systeme modellieren ohne aufwandige ExperimenteGeringe Kosten im Vergleich zu ExperimentenSpater im Praktikum benutzte Software: POVRay und WPP

Datenauswertung

Unabdingbar um komplexe Experimente zu verstehenSpater im Praktikum benutzte Software: MpCCD und RAxML

9/86

Wozu High Performance Computing (HPC)?

Simulation

Komplexe Systeme modellieren ohne aufwandige ExperimenteGeringe Kosten im Vergleich zu ExperimentenSpater im Praktikum benutzte Software: POVRay und WPP

Datenauswertung

Unabdingbar um komplexe Experimente zu verstehenSpater im Praktikum benutzte Software: MpCCD und RAxML

Entwicklung und Test neuer Technologien

9/86

Wozu HPC / Simulation

Beispiel: Ausbreitung seismischer Wellen in verschiedenenMaterialien (WPP)

10/86

Page 4: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Wozu HPC / Datenauswertung

Beispiel: Phylogenetische Baume aus Gensequenzen erzeugen(RAxML)

11/86

2 Begriffe, Basics und ArchitekturenBegriffeAufbauKomponentenVerbindungsnetzeSysteme im Praktikum

12/86

Begriff / Lastverteilung und Parallelitat

Idee der parallelen Verarbeitung

Ressourcenintensive Anwendungen benutzen verteilte Hardware

Ressourcen: CPUs, Hauptspeicher, persistenter Speicher...

Vorteile:

Hohere Kapazitaten als in EinzelsystemErhohte Redundanz und Ausfallsicherheit

13/86

Begriff / Capacity und Capability Computing

Capacity Computing

Stellt die Ressourcen bereit, um große Mengen von kleineren Problemen imBulk zu Losen. Die Anwendungen die dabei zum Einsatz kommen stellenmeist verhaltnismaßig geringe Anforderungen an die einzelnenHardwareelemente.

Capability Computing

Bietet Ressourcen, um Probleme zu losen die durch Capacity Computingnicht losbar waren. Diese Probleme stellen derart hohe Anforderungen an dieHardware, dass dafur spezielle Systeme zum Einsatz kommen mussen.

Die Grenzen sind dabei fließend.

14/86

Page 5: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Capacity vs. Capability Computing

Erkennen des Problems welches gelost werden soll

Fruhzeitige Entscheidung fur Capacity oder Capability Computing

Capability Computing benotigt ⇒ Cluster u.U. ungeeignet

15/86

Begriff / Cluster

ClusterVerknupfung von Standardkomponenten hochster Qualitat uber einHochgeschwindigkeitsnetzwerk auf engstem Raum und deren parallelerNutzung durch lastverteilte (parallelisierte) Programme.

16/86

Aufbau / Grundbausteine fur Cluster

RAM

Node

CPUCore Core

CoreCore

Input / Output

Grafik-Karte

RAM

Node

CPUCore Core

CoreCore

Input / Output

Grafik-Karte

RAM

Node

CPUCore Core

CoreCore

Input / Output

Grafik-Karte

RAM

Node

CPUCore Core

CoreCore

Input / Output

Grafik-Karte

Interconnect Fabric

Storage Storage

HDDHDDHDDHDD

17/86

Aufbau / Homogenitat und Heterogenitat

Homogenitat & Heterogenitat

Sind sowohl Hardware als auch Betriebssystem aller Rechnerknoten identisch,so spricht man von einem homogenen Cluster, andernfalls ist der Clusterheterogen.

18/86

Page 6: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Komponenten / CPU

x86: Xeon, Opteron, Core, Phenom ...

PreiswertSchnell (genug)Viel Software

sparc: Also Sun oder Fujitsu

Teurer, spezialisiertFur (Web)server-Cluster (SSL, Mail, Online Gaming, Datenbanken, ...)Diese auf Integer-Leistung angewiesene Applikationen konnen von Sparcprofitieren

Power:

Sehr teuer, hoher FließkommadurchsatzHochverfugbarkeitssysteme, Mainframes

MIPS: SiCortex

19/86

Komponenten / Festplatten

Zwei Grunde wieso Nodes mit Festplatten gut sind:

Swap File System fur Jobs mit hohen Resourcenanforderungen

Abbrechen von Jobs in vielen Fallen ohne Swap nicht moglich

Scratch File System zum Abspeichern von Zwischenergebnissen

20/86

Komponenten / Festplatten

Zwei Grunde wieso Nodes mit Festplatten gut sind:

Swap File System fur Jobs mit hohen Resourcenanforderungen

Abbrechen von Jobs in vielen Fallen ohne Swap nicht moglich

Scratch File System zum Abspeichern von Zwischenergebnissen

Zwei Grunde dagegen:

Verbraucht zusatzlich Strom

Verschleißteil

20/86

Komponenten / Grafikkarten

Prinzipiell uberflussig

ABER: nutzbar als Applikationsbeschleuniger

Abwagung Kosten vs. Nutzen vs. Programmierbarkeit

21/86

Page 7: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Verbindungsnetze / Zusammenhange1

Bandbreite

Latenz

Granularität (Parallelität)

SETI@home POVRAY LAMMPS, GAMMES, HPCC

HPC Netzwerktechnologieerforderlich

1fur alle NW Technologien siehe [DAAGeorgi08]

22/86

Verbindungsnetze / Losungen / Gigabit Ethernet

Fur professionelle Anwendung meist zu langsam

Allerdings fur unseren Lehrbedarf ausreichend

Bietet sich als Adminnetz an (ssh, ganglia, Batchsystem, ...)

23/86

Verbindungsnetze / Losungen / 10GBase

Nachfolger des vorherrschenden Ethernet Standards

Datenrate: bis 925 MiB/s; Latenz: 16.9µs − 25.8µs (Karte: ChelsioS310E-CX, Switch: HP Pro Curve 6400-cl im CX4 Mode)

Mit rund 1200 e pro Port (bei 256 Port Installation) noch recht teuer

24/86

Verbindungsnetze / Losungen / Infiniband

Weit verbreitet (≈ 30% der Top500) (durch HP Cluster Platform 3000und IBM xSeries x3650 moglicher Weise noch hoher)

Datenrate: bis 955 MiB/s; Latenz: 3.8µs − 4.1µs (4x SDR, Herstellergeben weit bessere Werte an [MellnxIBPerf])

Bandbreite bei großen Netzen aufgrund von statischem Routingreduziert[THoeffIBR08]

25/86

Page 8: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Verbindungsnetze / Losungen / Myrinet

Zu 10GBase (protokoll)kompatibel, im MX Mode aber latenzarm

Datenrate: 1185 MiB/s; Latenz: 2.5µs − 2.6µs(Karte:10G-PCIE-8AL-C+MX1; Switch: 10G-SW32LC-16M Line Card)

Stromsparend[CC08]

26/86

Verbindungsnetze / Losungen / Quadrics QsNetII

Bis 32 Ports volle Crossbar

Datenrate: 900 MiB/s; Latenz: 1.4µs (ohne MPI unter 0.5µs siehe[QsNetIIPerf])

27/86

Praktikumssystem I

Intel Essential Series D945GCLF2

75 e pro Stuck

Fur professionelle HPC-Anwendung ungeeignet

Bringt aber den Vorteil alles ausprobieren zu konnen

4 Boards gut als Lehr- und Lernsystem geeignet

28/86

Praktikumssystem II

3 x Sony Playstation 3 mit Cell Broadband Engine

Wegen einigen Eigenheiten bei der Administration ebenfalls gutesLehrsystem

Cell Architektur prinzipiell fur Clusterbau interessant, PS3 aberungeeignet (Hauptspeicher, Netzwerk)

29/86

Page 9: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

3 SystemsoftwareSystemsoftwareRegeln / TippsDatenspeicherungToolsBatchsysteme und ClustersuitenMonitoring

30/86

Systemsoftware

Betriebssystem

31/86

Betriebssystem I

Die Qual der Wahl

Auswahl des Betriebsystems richtet sich (meist) nach zu verwendenderHardware/Software, nicht umgekehrt!

Auf Treibersupport durch den Hersteller achten

32/86

Betriebssystem II

Wie soll gestartet werden?

Entweder: jeder Node hat eigene Festplatte → lokale Installation

Provisioning bedenken

Oder: Booten uber Netzwerk mittels bootp

33/86

Page 10: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Betriebssystem III

Linux eignet sich meist hervorragend fur Cluster

Enterprise Losungen bieten besseren Support, Treiberunterstutzung undZertifizierung (RHEL, SLES, ...)Komplette Softwarekits (z.B. Sun HPC Software) vereinfachen dieInstallation und AdministrationIm Praktikum Debian

Naturlich sind auch andere Betriebssysteme moglich

Teilweise weil nicht anders realisierbar (z.B. Sparc Cluster mit Solaris)Wissenschaftliche OpenSource Anwendungen (WPP, POY, GAMESS, ...)HPC problematisch

34/86

Systemsoftware / Zu Beachten I

Sowohl Software als auch Hardware homogen gestalten.

Je einheitlicher ein Cluster:

Desto weniger Aufwand bei Installation, Wartung, UpgradesDesto weniger Probleme mit inkompatiblen SchnittstellenDesto weniger unvorhergesehen Probleme

35/86

Systemsoftware / Zu Beachten II

Nodes nicht uberladen.

Je weniger Dienste und Hardware auf dem Node aktiviert sind, destobesser:

Nicht benotigte Dienste deaktivierenNicht benotigte Software deinstallierenNicht benotigte Features im BIOS deaktivierenCompute-Nodes sind zum Rechnen da!Head-Node ist Eintrittstor und Datensammelpunkt!

36/86

Systemsoftware / Zu Beachten III

node-5 ist auch ein Name.

Bezeichnungen aus diversen Mythologien sind hinderlich

Besser: Node-Namen bestehened aus einem einheitlichen Prafix undeiner fortlaufenden Nummer (node1, node2, ..., node23, ...)

Viele Tools profitieren davon, oder haben gar zusatzliche Features diedarauf aufsetzen

37/86

Page 11: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Systemsoftware / Zu Beachten IV

Know your enemy.

sysctl, getconf und hwinfo sind nutzlich

Viele Probleme lassen sich im Voraus verhindern

38/86

Systemsoftware / Zu Beachten V

Uhrzeit uber das ganze System synchron halten.

NTP benutzen!

Synchron laufende Systemuhren sind unabdingbar!

Am besten eigenen NTP-Server auf Head-Node zum Zeitabgleich derCompute-Nodes

39/86

Systemsoftware / Compiler

Ein Wort zu Compilern

GCC ist fur Linux Systeme unerlasslich

Produktivsoftware sollte mit optimalen Compiler fur Systemarchitekturkompiliert sein (z.B. ICC fur Intel CPUs)

Testreihen durchfuhren (manchmal ist auch gcc besser)

Meist kommerzielle Produkte

40/86

Datenspeicherung

41/86

Page 12: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Datenhaltung uber das Cluster I

Bisher stark vernetzte Rechner mit jeweils eigenem, von einanderunabhangigen Dateisystem

Binarys, Eingangsdatensatze, etc. mussen auf jedem Node der diesebenutzt verfugbar sein

Schlechte Losung: vor jedem Job Dateien per ftp oder scp auf die NodeskopierenRichtige Losung: Verzeichnisse die pro Node synchron gehalten sind

Verteiltes Dateisystem unabdingbar

42/86

Datenhaltung uber das Cluster II

//bin/boot/dev/etc/home/lib/mnt/opt/proc/root/sbin/cluster/sys/tmp/usr/var

Fileserver-

Daemon

//bin/boot/dev/etcnfs:///home/lib/mnt/opt/proc/root/sbinnfs:///cluster/sys/tmp/usr/var

//bin/boot/dev/etcnfs:///home/lib/mnt/opt/proc/root/sbinnfs:///cluster/sys/tmp/usr/var

Node 1 Node nHeadnode / NAS System

43/86

Dateisysteme / verteilte Dateisysteme I

Begriff: verteiltes Dateisystem

Ein verteiltes Dateisystem erlaubt den Zugriff auf Dateien eines odermehrerer entfernter, uber ein Rechnernetz verbundener Server.

Beachte: Obwohl Clients die verteilten Dateisysteme wie lokale Resourcenbenutzen konnen mussen die Dateien auf dem Server noch auf lokalenDateisystemen (Ext3, ReiserFS, XFS, . . . ) vorliegen. Dies ist fur die Clientstransparent.

44/86

Dateisysteme / verteilte Dateisysteme II

Man kann 2 Arten unterscheiden:

Distributed Filesystems (single source):

1 Server auf dem die Daten liegen

Bsp: AFS, NFS, SMB

Fehlertolerante: Coda, DFS

Distributed Parallel Filesystems (multi source):

Mehrere Server halten die Daten

Abbildung auf ein gesamtheitliches virtuelles Dateisystem

Bsp: Lustre, PVFS

Fehlertolerante: Ceph, GFS, GlusterFS

45/86

Page 13: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Tools

46/86

Tools

Verschiedene Arbeiten treten immer wieder auf

Nodes mussen bequem von einer Stelle aus administriert werden konnen

Werkzeuge zu kennen verringert Arbeitszeit signifikant(Einarbeitungsaufwand beachten)

47/86

Tools / Begriff / Distributed Shell

Erklarung

Prinzip: einen Befehl auf mehreren Nodes ausfuhren

Wrapper fur rsh/ssh/remsh-Kommandos

Verringert die Zeit fur Konfiguration, Updates usw.

48/86

Distributed Shell / DSH

Dancer’s Shell / Distributed Shell

Autor: Junichi Uekawa

Unterstutzt alle gangigen shells

Klein, leicht und handlich

Einfache Konfiguration

/etc/dsh/dsh.conf/etc/dsh/machines.list/etc/dsh/group/...

http://www.netfort.gr.jp/~dancer/software/dsh.html.en

49/86

Page 14: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Distributed Shell / PDSH

Parallel Distributed ShellAutor: Jim Garlick

Machtiger als DSH - ’Profiwerkzeug’

Modularer Aufbau (dynamisch ladbar)

Unterstutzt ’genders’

Wird im Praktikum benutzt

http://sourceforge.net/projects/pdsh

50/86

Tools / Begriff / Environment Modules

Environment ModulesErmoglicht dynamisches verandern des Linux-Environment

Wie der Name schon sagt: modular

Außerst praktisch, auch fur Desktop-Systeme

Wird im Praktikum benutzt

http://modules.sourceforge.net/

51/86

Environment Modules / Beispiel I

Beispiel: modules & LD LIBRARY PATH

52/86

Environment Modules / Beispiel

Beispiel: modules & binaries

53/86

Page 15: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Batchsysteme und Clustersuiten

54/86

Batchsystem / Begriff

Batchsystem

Softwarelosung zur Stapelverarbeitung (oder Batchverarbeitung)

Batchverarbeitung ist die sequentielle, nicht-interaktive Abarbeitung vonAufgaben.

Beinhaltet meist:

RessourcenmanagerSchedulerTools fur Konfiguration, Management und DiagnoseEinfaches Monitoring

55/86

Batchsystem / PBS

Portable Batch System

Entwickelt in den 1990ern fur die NASA

Verfugbar als PBSpro und OpenPBS

Ausgereift, gut dokumentiert und supportet

http://www.pbsgridworks.com/

Lizenz:

Eigene LizenzNutzung: kommerziell und nicht-kommerziell (openPBS) erlaubt(Registrierung)Weiterverbreitung: nur nicht-kommerziellModifikation: orginal Quelltext ist mitzuliefern

56/86

Batchsystem / LSF I

Load Sharing Facility

Platform LSF → kommerzielles Produkt

OS: Unix, Linux und Windows

Kommt auch am ZIH zum Einsatz

http://www.platform.com/Products/platform-lsf/

Lizenz:

Proprietar

57/86

Page 16: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Batchsystem / LSF II

Befehl: bjobs

Befehl: bjobs -a

58/86

Batchsystem / MOAB cluster suite

MOAB cluster suiteProfessionelle Middleware zum Cluster Management

Enthalt webbasierte und grafische Managment-Tools

OS: Linux, Unix, Mac OSX & bebrenzte Windows-Unterstutzung

Resource Manager: LSF, TORQUE, PBSPro, SGE, SLURM,LoadLeveler, OpenPBS and custom

http://www.clusterresources.com/

59/86

Batchsystem / SLURM

Simple Linux Utility for Resource Managment

OS: Linux, Unix

Einfach, skaliert gut

Sehr gut und ubersichtlich dokumentiert

Wird im Praktikum zum Einsatz kommen

https://computing.llnl.gov/linux/slurm/

Lizenz:

GPL

60/86

Batchsystem / OSCAR

Open Source Cluster Application Resources

OS: Linux (rpm-basierte)

Gedacht fur Beowulf-Cluster

Beinhaltet viele aufeinander abgestimmte Tools und Bibliotheken

http://svn.oscar.openclustergroup.org/trac/oscar

Lizenz:

GPL

61/86

Page 17: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Monitoring

62/86

Monitoring

Große Menge an Rechnern ohne eigenen Monitor uberwachen

Ubersicht des Systemzustands behalten

Idee: grafische Aufarbeitung der Parameter

Bei besonderen Zustanden Mails verschicken

Nur in Notfallen per Monitor oder seriellen Kabel an die Nodes gehen(BIOS etc.)

63/86

Monitoring / Ganglia

Ganglia

Umfassende Statistiken uber alle Nodes im System

Sammelt Daten mit Hilfe von Deamon auf jedem Node

Visualisierung per Webfrontend

Download: http://ganglia.info/

Lizenz:

UC Berkeley Lizenz “copy, modify, use and distribution without fee”

64/86

Monitoring / Ganglia Screenshot

65/86

Page 18: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

4 Anwendungssoftware / OptimierungKommunikationparallele SoftwareOptimierung

66/86

Kommunikation / InternodeNachrichtenaustausch

67/86

Internode Kommunikation

Bis jetzt: “Farm von Rechnern”

Nur moglich auf jedem Node Programm(e) zu starten

Ziel: Mehrere Nodes als ein Rechner zu benutzen

Nachrichtenaustausch von Programmteilen auf verschiedenen Nodes uberVerbindungsnetz notigDa kein gemeinsamer Hauptspeicher vorhanden ist mussen Nachrichtenexplizit versendet/empfangen werden

68/86

Kommunikation / MPI

Message Passing Interface

Standardisierte Programmierschnittstelle fur parallele Programmierung

Aktuelle Version des Standards: 2.0

Stellt diverse Kommunikationsroutinen zur Verfugung (send, receive,broadcast, ...)

Mehrere Prozesse die miteinander uber Nachrichten kommunizieren

Vertreter: OpenMPI, MPICH1, MPICH2, MVAPICH

Verfugbar fur C/C++,Fortran, Java, Python

69/86

Page 19: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Begriff / PVM

Parallel Virtual MachineAbstraktion verteilter Systeme auf einen virtuellen Parallelrechner

aktuelle Version: 3.4

benutzt Daemons die miteinander uber Nachrichten kommunizieren

verfugbar fur C/C++,Fortran, Java, Python, Pearl ...

70/86

parallele Anwendungen

71/86

parallele Anwendungen

Idee der Lastverteilung

Resourcenintensive Anwendungen benutzen verteilte Hardware

Resourcen: CPUs, Hauptspeicher, persistenter Speicher...

Vorteile:

Hohere Kapazitaten als in EinzelsystemGute SkalierbarkeitErhohte Redundanz und Ausfallsicherheit

72/86

parallele Programmierung: Token Ring I

1 #include <stdio.h>2 #include <mpi.h>3

4 #define NRING 1005 #define TAG 47116

7 int main(int argc , char *argv []){8 int rank , size , next , prev , message;9

10 /* start up MPI */11 MPI_Init (&argc , &argv);12 MPI_Comm_rank(MPI_COMM_WORLD , &rank);13 MPI_Comm_size(MPI_COMM_WORLD , &size);14

15 /* errechne rank des naechsten prozesses im ring */16 next = (rank + 1) % size;17 prev = (rank + size - 1) % size;18

19 /* rank 0 ist start*/20 if (0 == rank) {21 message = NRING;22 MPI_Send (&message , 1, MPI_INT , next , TAG , MPI_COMM_WORLD );23 }

73/86

Page 20: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

parallele Programmierung: Token Ring II

24

25 /* sende token immer im ring */26 while (1) {27 MPI_Recv (&message , 1, MPI_INT , prev , TAG , MPI_COMM_WORLD ,28 MPI_STATUS_IGNORE );29

30 if (0 == rank) --message;31

32 MPI_Send (&message , 1, MPI_INT , next , TAG , MPI_COMM_WORLD );33

34 if (0 == message) break;35 }36

37 /* token als letztes zu rank 0 zurueck */38 if (0 == rank) {39 MPI_Recv (&message , 1, MPI_INT , prev , TAG , MPI_COMM_WORLD ,40 MPI_STATUS_IGNORE );41 }42

43 MPI_Finalize ();44 return 0;45 }

74/86

MPI Implementierungen

Open MPI

http://www.open-mpi.org/

OpenSource

Standartkonform zu MPI Version 2.0

Unterstutzt fast alle Interconnects

Wird von TU Chemnitz und ZIH mitentwickelt

Ist durch großes Konsortium zukunftssicher

Kann deshalb ohne Bedenken benutzt werden

75/86

Debugging

Debugging

(Fast) nur kommerziell verfugbar

Alinea DDTTotalview

“Paralleles Debugging ist eine Wissenschaft fur sich”

76/86

Wissenschaftliche Anwendungen

wissenschaftliche Anwedungen

GAMESS (http://www.msg.ameslab.gov/GAMESS/GAMESS.html)

GROMACS (http://www.gromacs.org/)

OpenFOAM (http://www.opencfd.co.uk/openfoam/)

POP (http://climate.lanl.gov/Models/POP/)

POV-Ray (http://www.povray.org/)

POY (http://research.amnh.org/scicomp/projects/poy.php)

RAxML(http://icwww.epfl.ch/~stamatak/index-Dateien/Page443.htm)

WPP (https://computation.llnl.gov/casc/serpentine/)

... und viele mehr

77/86

Page 21: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Optimierung

78/86

Optimierung / Analyse

Profiling

gprof

Fur jeden MPI Prozess ein OutputZahlt Funktionsaufrufe und darin verbliebene Zeit

Tracing

Vampirtrace

Standalone oder im Open MPIFuhrt Aktionen aller Prozesse zu einem Ergebniss zusammenBraucht Anzeigeprogramm um Ergebnisse zu Visualisieren (Vampir)Lizenz: GPLMittlerweile der Standard fur Tracing paralleler AnwendungenWird am ZIH entwickeltUnterstutzt PAPI Counter

Scalasca

Intel Thread Analyser

79/86

Optimierung/ Vampir I

80/86

Optimierung / Vampir II

81/86

Page 22: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Analyse / Benchmarking

BenchIT Performance Meassurement for Scientific Applications. AlsOpenSource verfugbar unter http://www.benchit.org/.

82/86

Literatur I

[DAAndyG08] Andy GeorgiDiplomarbeit: Untersuchung ausgewahlter Netzwerk-TechnologienTU Dresden / ZIH – 2008

[TaschInf] Uwe Schneider, Dieter WernerTaschenbuch der InformatikFachbuchverlag Leipzig – ISBN 3-446-21753-3

[BlueGen] Blue Gene Websitehttp://domino.research.ibm.com/comm/research_projects.nsf/

pages/bluegene.index.html

83/86

Literatur II

[THoeffIBR08] T. Hoefler and T. Schneider and A. LumsdaineMultistage Switches are not Crossbars: Effects of Static Routing inHigh-Performance NetworksProceedings of the 2008 IEEE International Conference on ClusterComputinghttp://www.unixer.de/~htor/publications/ – ISBN

978-1-4244-2640

[ZIHPubl] Diplomarbeiten, PhD Thesis, Studienarbeiten am ZIHhttp://tinyurl.com/c3zts8

[Myri10GE] http://myricom.com/scs/performance/MX-10G/

[MellnxIBPerf] http://mellanox.com/content/pages.php?pg=performance_infiniband

84/86

Literatur III

[CC08] Cluster Challenge 08: Optimizing Cluster Configuration andApplications to Maximize Power EfficiencyJ. Muller, T. Schneider, J. Domke, R. Geyer, M. Hasing, T. Hoefler, St.Hohlig, G. Juckeland, A. Lumsdaine, M. S. Muller, W. E. NagelIn Linux Cluster Institute Conference, 2009

[HennPattQA4] John L. Hennessy, David A. PattersonComputer Architecture, Fourth Edition: A Quantitative ApproachMorgan Kaufmann 2006 – ISBN 978-0123704900

[QsNetIIPerf] http://tinyurl.com/cnja7rQsNetII Performance Results

85/86

Page 23: Cluster Computing & OpenSource Verfugba rkeit der …...Capability Computing ben otigt ) Cluster u.U. ungeeignet 15/86 Begri / Cluster Cluster Verknupfung von Standardkomponenten h

Literatur IV

[THoeffIC09] T. Hoefler and T. Schneider and A. LumsdaineA Power-Aware, Application-Based, Performance Study Of ModernCommodity Cluster Interconnection NetworksProceedings of the 23rd IEEE International Parallel & DistributedProcessing Symposium (IPDPS), CAC Workshophttp://www.unixer.de/publications//?pub=87

86/86