Grundlagen der Informatik III Wintersemester 2010/2011 12. Vorlesung Dr.-Ing. Wolfgang Heenes



Ähnliche Dokumente
Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Einführung in die Systemprogrammierung

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Mikrocontroller Grundlagen. Markus Koch April 2011

Lösungsvorschlag zur 4. Übung

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Grundbegriffe der Informatik

Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund

Zeichen bei Zahlen entschlüsseln

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen?

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

4D Server v12 64-bit Version BETA VERSION

Einführung in Eclipse und Java

1 Mathematische Grundlagen

Konzepte der Informatik

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Übungen zur Softwaretechnik

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

SharePoint Demonstration

1 Was ist das Mediencenter?

Grundlagen der Theoretischen Informatik, SoSe 2008

OpenMP am Beispiel der Matrizenmultiplikation

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

PROLAG WORLD 2.0 PRODUKTBESCHREIBUNG SERVERSYSTEM, CLUSTERSYSTEME FÜR PROLAG WORLD

Virtuelle Maschinen. von Markus Köbele

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

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Proseminar Technische Informatik A survey of virtualization technologies

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Preisvergleich ProfitBricks - Amazon Web Services M3 Instanz

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Informationsblatt Induktionsbeweis

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

Die Mikroprogrammebene eines Rechners

Windows 7 ist da! Der Nachfolger von Vista kommt noch vor dem Sommer

Lineare Gleichungssysteme

Primzahlen und RSA-Verschlüsselung

virtuos Leitfaden für die virtuelle Lehre

Installation der SAS Foundation Software auf Windows

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Verwendung des Terminalservers der MUG

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Einführungskus MATLAB

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Lizenzierung von System Center 2012

Grundlagen verteilter Systeme

Speicher in der Cloud

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

2. Negative Dualzahlen darstellen

EASYINSTALLER Ⅲ SuSE Linux Installation

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

XSC. Reimar Bauer, Rebecca Breu. Dezember Forschungszentrum Jülich. Weihnachtsfeier, 10. Dezember

Objektorientierte Programmierung. Kapitel 0: Begrüssung

5 Speicherverwaltung. bs-5.1 1

Grundlagen der Informatik III

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Die Online-Meetings bei den Anonymen Alkoholikern. zum Thema. Online - Meetings. Eine neue Form der Selbsthilfe?

Windows 8 Lizenzierung in Szenarien

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

Computerarithmetik ( )

Einführung in PHP. (mit Aufgaben)

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

1.3 MDM-Systeme KAPITEL 1 ZAHLEN UND FAKTEN

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Tips, Tricks und HOWTOs Virtualisierung für Profis und Einsteiger Serverkonsolidierung, Testumgebung, mobile Demo

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

Was meinen die Leute eigentlich mit: Grexit?

Local Control Network

Erfahrungen mit Hartz IV- Empfängern

Aktuelle Themen der Informatik: Virtualisierung

Die Lernumgebung des Projekts Informationskompetenz

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Cad-OasEs Int. GmbH. 20 Jahre UG/NX Erfahrung prägen Methodik und Leistungen. Nutzen Sie dieses Wissen!

Formular»Fragenkatalog BIM-Server«

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Verwendung des IDS Backup Systems unter Windows 2000

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

icloud nicht neu, aber doch irgendwie anders

OSD-Branchenprogramm. OSD-Version Was ist neu? EDV-Power für Holzverarbeiter

Java Kurs für Anfänger Einheit 5 Methoden

Transkript:

Grundlagen der Informatik III Wintersemester 2010/2011 12. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la $a0,msg li $v0,4 syscall jr $ra 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 1

Inhalt 1. Literatur 2. Gleitkommarechnung in IA32 3. Leistungsbewertung II 4. Zusammenfassung und Ausblick 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 2

Literatur [Fey10] Fey, Dietmar: Grid-Computing - Eine Basistechnologie für Computional Science. Springer, 2010. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 3

Gleitkommarechnung in IA32 Bisher wurden alle Rechnungen in Integerarithmetik durchgeführt (Datentyp long) Kurze Einführung in Gleitkommarechnung in IA32 Im Prinzip ist die Gleitkommarechnung vollständig in Integerarithmetik abzubilden. Wird bei vielen einfachen Prozessoren (z. B. Softcore-Prozessoren NIOS II) gemacht Wegen der Bedeutung haben heute Prozessoren von Intel, AMD, IBM alle dedizierte Gleitkommaeinheiten (FPUs Floating Point Units) Im Folgenden eine kurze Einführung in die x87 FPU eines IA32 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 4

Übersicht über die Register beim IA32 General Purpose Register (%eax,...) 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 5

Übersicht über die FPU Register beim IA32 FPU Register 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 6

Übersicht über die FPU Register beim IA32 Acht Gleitkomma-Datenregister Control Register Status Register Tag Register Opcode Register (11 Bits) FPU Instruction Pointer Register FPU Daten (Operanden) Pointer Register Im Folgenden genauere Beschreibung... 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 7

Übersicht über die FPU Register beim IA32 Gleitkomma-Datenregister 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 8

Übersicht über die FPU Register beim IA32 Organisation des FPU Stacks, Registernummer des obersten Elements wird in dem Statusregister gespeichert 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 9

Erstes Assemblerprogramm mit Gleitkommazahlen. data i n t o u t :. s t r i n g " Ergebnis %f \ n " a :. f l o a t 2.4 b :. f l o a t 3.1. t e x t. g l o b l main main : f l d a fmul b subl $8, %esp f s t p l (%esp ) pushl $ i n t o u t c a l l p r i n t f # E x i t movl $1, %eax i n t $0x80 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 10

Zweites Assemblerprogramm mit Gleitkommazahlen Berechnet wird der folgende Ausdruck: (5.6 x 2.4) + (3.8 x 10.3) 1. data 2 i n t o u t :. s t r i n g " Ergebnis %f \ n " 3 value1 :. f l o a t 5.6 4 value2 :. f l o a t 2.4 5 value3 :. f l o a t 3.8 6 value4 :. f l o a t 10.3 7... 8 main : 9 f l d value1 10 fmul value2 11 f l d value3 12 fmul value4 13 fadd %s t ( 1 ) 14... 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 11

Aufbau des FPU Stacks beim zweiten Assemblerprogramm Stack 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 12

FPU Status Register beim IA32 Übersicht der Status Bits, Speicherung des obersten Stackelements 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 13

FPU Tag Register beim IA32 Informationen über die FPU Registerinhalte 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 14

FPU Transportbefehle beim IA32 Transportbefehle 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 15

Grundlegende FPU Befehle beim IA32 Grundlegende FPU Befehle sind in jedem Prozessor enthalten Beim IA32 gibt es z. B. FADD/FADDP Add floating point FSUB/FSUBP Subtract floating point FMUL/FMULP Multiply floating point FDIV/FDIVP Divide floating point FABS Absolute value FSQRT Square root Unterschied FADD und FADDP FADD m32fp: Add m32fp to ST(0) and store result in ST(0) FADD m64fp: Add m64fp to ST(0) and store result in ST(0) FADD ST(0), ST(i): Add ST(0) to ST(i) and store result in ST(0) FADDP: Add ST(0) to ST(1), store result in ST(1), and pop the register stack 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 16

Weitere FPU Befehle beim IA32 Trigonometrische Funktionen FSIN FCOS FPTAN Logarithmus FYL2X F2XM1 Übersicht: Intel 64 and IA-32 Architectures Software Deverloper s Manual, Kapitel 8 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 17

Leistungsbewertung II Nach dem Einschub zu den Gleitkommazahlen Zusammenfassung: Leistungsmaße von Prozessoren sind 1. Taktfrequenz 2. CPI Rate (Clock Cycles per Instruction) 3. MIPS Rate (Million Instructions per Second) 4. MFLOPS (Million Floating-point Operations per Second) Zur Erinnerung: Die Kriterien stellen ein Leistungsmaß für den Prozessor dar, lassen aber nur bedingt Aussagen über die Leistungsfähigkeit des Rechnersystems zu. Die Leistung des Systems hängt sowohl von der umgebenden Hardware, als auch von dem komplexen Zusammenspiel von Hardware und Software, insbesondere dem Betriebssystem, ab. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 18

Leistungsbewertung II Benchmarks Benchmarks sind repräsentative Programme, die auf den zu vergleichenden Rechnern ausgeführt werden Es gilt der Rechner als der Leistungsfähigste, bei dem die Benchmark-Programme am schnellsten ausgeführt werden. Aber: In der Praxis wurden häufig Compiler oder auch Instruktionssätze so optimiert, dass gängige Benchmarks besonders schnell abliefen Vier Typen von Benchmarks Reale Programme: Verwendung häufiger Anwendungen wie C-Compiler, Textprozessoren (L A T E X), SPICE usw. Kernels: Kurze kritische Auszüge aus realen Programmen, die isoliert zur Ausführung gebracht werden Toy Benchmarks: Kleine, einfach zu schreibende Programme, die leicht zur Ausführung gebracht werden können (z. B. Quicksort) Synthetische Benchmarks: Speziell entwickelte Programme, die die Leistungsfähigkeit einzelner Instruktionen oder einzelner Komponenten der zu vergleichenden CPUs aufdecken sollen (z. B. Dhrystone) 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 19

Leistungsbewertung II Benchmarks Standard-Benchmark Suites: SPEC Standard Performance Evaluation Corporation www.spec.org gegründet 1989 durch mehrere Rechnerhersteller (Apollo/HP, DEC, MIPS, Sun Microsystems) Beschaffen eines Satzes von zunächst realen Programmen, die auf allen Rechnern lauffähig sind und in ihrer Gesamtheit zur Messung der Prozessorleistung herangezogen werden. Die SPEC-Benchmark-Suite durchlief mehrere Generationen, in denen die einzelnen Programme jeweils den aktuellen Eigenschaften der Rechner/Prozessoren und der Systemsoftware angepasst wurden. Anpassungen z. B. x87 MMX, SSE 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 20

Leistungsbewertung II Benchmarks SPEC Benchmarks CPU89 10 Programme liefern eine einzelne Zahl (SPECmarks) CPU92 SPECInt92 (6 integer Programme) and SPECfp92 (14 floating point Programme) CPU95 neue Programme: SPECint95 (8 Integer Programme) und SPECfp95 (10 Floating Point Programme) CPU2000 CINT2000 11 integer (gzip, gcc, crafty, perl,...) CFP2000 14 floating-point (swim, mesa, art,...) Alle Ergebnisse gemessen relativ zu Basisrechner Sun 300 MHz 256Mb-RAM Ultra5_10; diese hat Score 100 CPU2006 (immernoch aktuell) CINT2006 Benchmark für Integer-Performanz CFP2006 Benchmark für Gleitpunkt-Performanz 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 21

Leistungsbewertung II Benchmarks SPEC Benchmarks sind nicht nur für Prozessoren erhältlich Grafikkarten MPI 1 /OpenMP Mailserver Java (für virtuelle Maschinen)... Die Benchmarks sind kostenpflichtig Allerdings einige freie Tests verfügbar (z. B. gzip und bzip). z. B. von Intel (Link) LINPACK: ursprünglich nur numerische Programmbibliothek zum Lösen von linearen Gleichungssystemen LINPACK wird zur Leistungsmessung von Supercomputern eingesetzt aber auch verfügbar für: Linux, Windows, Mac OS Steht im SVN 1 Message Passing Interface 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 22

Leistungsbewertung II Benchmarks Ausführung auf Notebook (vier Kerne, 2 GHz) Ergebnis CPU frequency: 1.995 GHz Number of CPUs: 4 Number of threads: 4 Performance Summary (GFlops) Size Average Maximal 15000 21.7752 21.7752 14000 25.4207 25.6804 13000 25.3818 25.4019 12000 25.0435 25.4617 11000 25.4458 25.6519 10000 25.4523 25.4710 8000 24.2956 24.3837 6000 23.0570 24.0496 1000 16.5292 17.3094 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 23

Leistungsbewertung II Benchmarks Ausführung auf Workstation (zwei Kerne, 3.2 GHz) Ergebnis CPU frequency: 3.167 GHz Number of CPUs: 2 Number of threads: 2 Performance Summary (GFlops) Size Average Maximal 15000 21.0097 21.0097 14000 20.8929 20.9319 13000 20.9694 21.0791 12000 20.9824 20.9901 11000 20.8284 20.8591 10000 20.5977 20.6629 8000 20.3380 20.3435 6000 19.7895 19.8172 1000 16.7573 16.8860 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 24

Leistungsbewertung II Benchmarks Außerdem verfügbar unter Linux: cat /proc/cpuinfo Angaben von Taktfrequenz Cache-Größe Floating Point Unit (vorhanden) BogoMips BogoMips 2 unwissenschaftliches Maß für die CPU-Geschwindigkeit Wert wird beim Booten ermittelt, um interne Warteschleifen zu kalibrieren Mit BogoMips können keine Leistungsvergleiche zwischen Prozessoren durchgeführt werden. 2 Bogus - scheinbar, Mips - Millionen Instruktionen pro Sekunde 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 25

Parallele Rechnersysteme Die physikalische Struktur eines Rechnersystems mit verteiltem Speicher ist in der folgenden Abbildung zu sehen. Jeder Knoten besteht aus einem Prozessor und einem Speicher und ggf. der I/O Peripherie. Die Knoten werden über ein Verbindungsnetzwerk gekoppelt. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 26

Parallele Rechnersysteme Die Daten und Programme werden in lokalen Speichern abgelegt. Der Zugriff auf die Speicher kann nur der dem Speicher zugeordnete Prozessor ausführen. Der Zugriff auf Daten im Speicher anderer Prozessoren ist über Nachrichtentausch (Message Passing) möglich. Rechner mit verteiltem Speicher sind einfach zu realisieren. Dazu können gebräuchliche Standardsysteme (PCs) mit einem LAN 3 gekoppelt werden. In der Literatur werden solche Systeme als Cluster bezeichnet, falls alle Rechner als Gesamtheit zur Lösung eines Problems benutzt werden. Auch bei struktureller Gleichheit zwischen Parallelrechnern und Clustern als MIMD Rechner ergeben sich durchaus Unterschiede. So erfolgt auf dem Parallelrechner eine schnelle Kommunikation, während die Kommunikation über das Verbindungsnetz deutlich langsamer ist. Als Programmiermodell für solche Systeme wird z. B. das Message Passing Modell verwendet. Die Leistungsfähigkeit eines solchen Systems wird durch die Verteilung (Partitionierung) der Daten erheblich beeinflußt. 3 Local Area Network 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 27

Parallele Rechnersysteme Die Abbildung zeigt ein Rechnersystem mit physikalisch gemeinsamem Speicher. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 28

Parallele Rechnersysteme Die Merkmale eines Rechnersystems mit gemeinsamen physikalischen Speicher sind, daß auf einen gemeinsamen Adreßraum alle Prozessoren lesend und schreibend zugreifen können. Der Speicher kann, wie in der Abbildung dargestellt, aus mehreren Modulen bestehen. Die Kommunikation der Prozessoren und der Speicher erfolgt wieder über ein Verbindungsnetz. Allerdings sind die Speicherzugriffe oft ein Flaschenhals, denn ein Vergleich der Steigerungen von Prozessorleistung, Speicherkapazität und Speicherzugriffszeit zeigt, daß die Zugriffszeit sich nicht im dem Maße verringert, wie die anderen Leistungen steigen. Oft bekommen die Prozessoren solcher Systeme noch Cache-Speicher zugeordnet, mit der in vielen Fällen die Gesamtleistung nochmals deutlich gesteigert werden kann. Als Programmiermodell wird bei Systemen mit gemeinsamen Speicher sehr oft gemeinsame Variablen und Threads verwendet. Dies ist in der Regel einfacher als Message Passing zu implementieren. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 29

Leistungsmaße paralleler Systeme Leistungsmaße Zeit für die lokale Berechnungen Zeit für den Datenaustausch durch Ausführung von Kommunikationsoperationen Wartezeiten auf Ergebnisse anderer Prozesse Zeit zur Synchronisation Die Laufzeit eines sequentiellen Programms sei T s (n). Dabei wird oft von der Laufzeit des besten Algorithmus gesprochen. Da die Freiheitsgrade bei der Programmierung aber auch bei sequentiellen Algorithmen sehr hoch sind, wird oft auch die Laufzeit eines üblichen sequentiellen Algorithmus angegeben. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 30

Speedup und Effizienz - I Bei der Bewertung paralleler Algorithmen sollen die beiden Größen Beschleunigung (Speedup) und Effizienz verwendet werden. Die Definition der Beschleunigung ist S(p) = T s(n) T p (n, p) (1) und gibt den relativen Geschwindigkeitszuwachs an, der durch die Verwendung von p Prozessoren erreicht wird. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 31

Speedup und Effizienz - II Als zweiter wichtiger Punkt wird bewertet, mit wievielen Prozessoren die Beschleunigung erreicht wurde. Dieser Zusammenhang wird als Effizienz bezeichnet ist und als E(p) = S(p) p (2) definiert. Wie schon angesprochen, ist die Suche nach dem besten Algorithmus eines Problems in der Praxis sehr schwer. Theoretische Beweise haben gezeigt, daß es Probleme gibt, zu denen gar kein bester Algorithmus existiert. In der Praxis wird deshalb häufig das adaptive Verhalten eines parallelen Algorithmus betrachtet. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 32

Speedup und Effizienz - III Unter dem adaptiven Verhalten wird die Änderung der Laufzeit eines parallelen Algorithmus bei Variation der Prozessoranzahl verstanden. Aus diesem Grund wird die Definition der Beschleunigung wie folgt vorgenommen. Für ein Problem der Größe n sei T p (n, p) die Laufzeit des parallelen Algorithmus. Als sequentieller Algorithmus wird der parallele Algorithmus auf einem Prozessor ausgeführt. Die Ausführungszeit beträgt T 1 (n, 1). Der sogenannte Rough Speedup 4 wird wie folgt definiert. rs(p) = T 1(n, 1) T p (n, p) (3) 4 In Übersetzungen ist auch von relativer Beschleunigung die Rede. Allerdings stellt auch das Ergebnis der Gleichung 1 eine relative Beschleunigung dar. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 33

Speedup und Effizienz - IV Der relative Speedup ist damit unabhängig vom dem in der Praxis nur schwer zu findenden besten sequentiellen Algorithmus. Allerdings läßt Gleichung 3 auch keine Aussagen mehr über die Beschleunigung durch Anwendung des parallelen Algorithmus im Vergleich zum sequentiellen Algorithmus zu. Der relative Speedup bewertet also nur das Parallelitätsverhalten des Algorithmus. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 34

Speedup-Klassen Es kann nicht davon ausgegangen werden, daß mit p Prozessoren auch eine Beschleunigung S(p) = p erreicht wird. In der Praxis haben sich drei Klassen herausgebildet, in die der Speedup der parallelen Algorithmen eingeteilt werden kann. 1. Gut: Die Beschleunigung S(p) wächst proportional mit der Prozessorenanzahl p. In der Regel wird sich S(p) < p ergeben, weil in jedem parallelen System Mehrarbeit in Form von Latenzzeit, Synchronisation und Datenverteilung auftritt. Dieser Aufwand ist in realen Systemen nicht zu vernachlässigen. 2. Realistisch: In diesem Fall wächst die Beschleunigung zunächst linear, nimmt mit wachsender Anzahl von Prozessoren p immer weiter ab und kann ggf. auch rückläufig sein. Eine Begründung dafür ist, daß der Kommunikationsaufwand zu weit ansteigt und die einzelnen Prozessoren nicht mehr ausgelastet werden. 3. Anomal: Die anomale Beschleunigung wird auch als superlinearer Speedup bezeichnet. Dabei gilt daß S(p) p ist. Eine solche Beschleunigung ist zwar recht erfreulich, sollte aber genauestens untersucht werden. Gründe für ein solches Verhalten können Cacheeffekte oder randomisierte Algorithmen sein. 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 35

Amdahls Gesetz In jedem Algorithmus gibt es einen nicht parallelisierbaren Anteil f, der die Beschleunigung (Speedup) beschränkt. Dieses Gesetz nennt man Amdahls Gesetz. Der damit maximal erreichbare Speedup ist: as 1 f + (1 f )/p (4) Der parallelisierbare Anteil ist dabei 1 f. Für f = 0, 1 und p = 9 (für z. B. neun Prozessoren) ergibt sich also ein Speedup von as = 5. Auch Amdahls Gesetz unterliegt gewissen Beschränkungen (Amdahl Effekt). 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 36

Supercomputer/Cluster Wie schon erwähnt: LINPACK ist zur Leistungsmessung von Supercomputern/Cluster etabliert. LINPACK bzw. die einzelnen Programme sind im Wesentlichen in FORTRAN 5 geschrieben Was bringt so ein Clustersystem? Überwiegend sichtbar sind Anwendung aus Physik, Chemie, Elektrotechnik, Maschinenbau,... Steigerung der Rechenleistung aber auch Ausfallsicherheit, Lastverteilung (Anwendungen bei Banken usw.) Jährliche Events, z. B. SC 10 (Link) Einführung einer Liste der 500 schnellsten Computer, TOP 500 www.top500.org 5 FORmula TRANslation 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 37

Leistungmaße für Supercomputer/Cluster Webseite der TOP 500 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 38

Tianhe-1A Tianhe-1A National Supercomputing Center in Tianjin Operating System Linux Memory 229376 GB Processor: Intel EM64T Xeon X56xx (Westmere-EP) 2930 MHz (11.72 GFlops) GPU: NVIDIA GPU, FT-1000 8C Application area: Research Praxis: Linpack-Wert Tianhe-1A, 2,56 PFlops Jaguar, Oak Ridge National Laboratory, 1,76 PFlops JuGene, Jülich, 825 TFlops 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 39

Cluster an der TU Darmstadt Die TU Darmstadt betreibt derzeit mehrere Supercomputer, u. a. den Hessischen Hochleistungsrechner HHLR. HHLR: 18 SMP-Knoten (Typ IBM 9125-F2A p575) mit insgesamt 576 Power6-Prozessoren. Cluster des Instituts für Theorie Elektromagnetischer Felder Hochleistungsrechner, Exzellenzinitiative: geplant, ab 2011 150 TFlop/s, endgültigen Ausbaustufe 2012 Spitzenleistung von 400 TFlop/s. GSI Helmholtzzentrum für Schwerionenforschung, Unterstützung für FAIR-Experimente (LHC) Im Sommersemester 2011 Vorlesung am FB 20 zu parallelen Algorithmen und Clustercomputing Einen Überblick zu Clustern und Grid-Computing gibt z. B. [Fey10] 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 40

Verbesserungen der Leistung Wie können Verbesserungen erreicht werden? Erhöhung der Taktfrequenz Erhöhung der Verarbeitungseinheiten (SIMD) Verbesserungen der Prozessororganisation zur Reduzierung der CPI Compilerverbesserungen: z. B. geringere Instruktionsanzahl Leistungsverbesserung hängt ab von dem Anteil an der Ausführungszeit, die eine bestimmte Aufgabe mit der verbesserten Hardware verbringt Aber Achtung: Amdahl s Gesetz Und viele weitere Faktoren Speicherhierarchie Verbindungsstrukturen... 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 41

Zusammenfassung und Ausblick Gleitkommarechnung in IA32 Leistungsbewertung II Nächste Vorlesung behandelt Speicherhierarchie I 24. November 2010 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 42