Grundlagen der Simulation auf Hochleistungsrechnern

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Simulation auf Hochleistungsrechnern"

Transkript

1 Grundlagen der Simulation auf Hochleistungsrechnern Marcus Mohr Department of Earth and Environmental Sciences Geophysics Section Ludwig-Maximilians-Universität München

2 Teil #1 Einführung Motivation, Was ist Hochleistungsrechnen? Formen der Parallelität, Grundbegriffe, Amdahls Gesetz 1

3 Warum Hochleistungsrechnen? Beispiel: Simulation von Mantelkonvektion mit TERRA Erste Version um 1985 (J. Baumgardner) Parallelisierung mit PVM (Parallel Virtual Machine) um 1992 (H.-P. Bunge) Portierung auf die Cray T3E (Vektorrechner) als Teil der NASA High Performance Computing and Communications (HPCC) Initiative um

4 Mantle Convection earth consists of nested regions: crust, mantle, core convection is driven by primordial and radioactive heat solid state convection (creep) overturns mantle every million years convection drives large-scale geological activity (plate tectonics, continental drift) 3

5 Mathematical-Physical Model As a flow process mantle convection can be described by the compressible Navier- Stokes equations in combination with an energy equation. Fortunately this can be simplified: Assume quasi-static flow field and drop time-dependency from momentum equations Small flow velocities allow to drop non-linear convection terms from momentum equations Assume that material is basically incompressible and use Boussinesq approximation Inertial and coriolis forces can be neglected generalised Stokes problem coupled to time-dependent energy equation 4

6 Simplified PDE System Conservation of mass: Conservation of momentum: div u = 0 div [ ν ( grad u + (grad u) T )] grad p + ϱ 0 α (T T 0 ) g = 0 Conservation of energy: ( ) T ϱ 0 c p t + u grad T div (k grad T ) ϱ 0 H = 0 u: velocity, p: pressure, T : temperature, α: coeff. of thermal expansion, cp: specific heat at constant pressure, H: rate of internal heat production per unit volume, g: gravitational acceleration, κ: thermal diffusivity, ϱ 0 : density, ν: kinematic viscosity 5

7 Time-Stepping Algorithm The time-dependent energy equation T t = 1 ϱ 0 c p div (k grad T ) u grad T + ϱ 0 H is integrated (forward) in time using the modified Euler scheme [ T (t n+1 ) = T (t n ) + δt f t n + δt 2, T (t n) + δt ] 2 f(t n, T (t n )) Thus, two evaluations of the 3D velocity field u required per time-step. div [ ν ( grad u + (grad u) T )] grad p = ϱ 0 α (T 0 T (t i )) g div u = 0 6

8 Space Discretisation I (follows Baumgardner & Frederickson, 1985) a surface grid is generated by mapping an icosahedron onto the sphere spherical triangles surface grid is successively refined factor four in each step surface grid is radially extended down to the mantle-core boundary 7

9 Space Discretisation II the grid generation process naturally leads to a nested grid hierarchy characteristics of surface grid: # triangles 20 n 2 # nodes 10 n # arcs 30 n 2 (with n = 2 k, k the level of refinement level) (figure: Karpik et al. 1991) radial resolution typically used is n/2 layers 8

10 Gesamtzahl Knoten Die Gesamtzahl an Knoten beträgt: mit n = 2 k. K = (10 n 2 + 2) (n/2 + 1) Für realistische Rayleighzahlen ( 10 9 ) benötigen wir eine Auflösung an der Erdoberfläche von 25 km. = k = 8, n = 2 8 = 256 = K =

11 Speicherbedarf der Simulation Wir speichern pro Gitterknoten: 5 Unbekannte: Geschwindigkeit (u, v, w) T, Druck p, Temperatur T Kopplung (aus FEM-Ansatz) von (u, v, w, p) am Knoten selbst und zu den 17 Nachbarknoten 4 18 = 72 Werte Parameter & Hilfsgrößen 3 Stück = 80 Werte/Knoten = 640 Byte/Knoten = S = 640 Byte K = 640 Byte GByte 10

12 Maximale Hauptspeichergrößen Die maximale (theoretische) Hauptspeichergröße wird durch die Adressierbarkeit bestimmt: 32-Bit Architektur: 2 32 = Giga-Byte 64-Bit Architektur: 2 64 = Exa-Byte Aber: In der Praxis ist der adressierbare Speicher kleiner z.b. AMD64-Prozessoren 40 Adresspins 1 Tera-Byte 11

13 Arbeitsaufwand und Laufzeit Kenngröße für TERRA: Operationen / Knoten / Zeitschritt Arbeitsaufwand pro Zeitschritt: A z = K 6, Ops Hardware-Beispiel: AMD Opteron 250 (64 bit, single core) Taktung: 2,4 GHz, 2 Ops pro Takt Peak Performance 4,8 GFlops Laufzeit: AMD Opteron 250 Peak-Performance 25% Peak 1 Zeitschritt 2,3 Minuten 9,4 Minuten 500 Zeitschritte 19,6 Stunden 3,3 Tage 12

14 Nächste Verfeinerungsstufe Für eine Auflösung von 12,5 km benötigen wir n = 2 9 = 512 K = S 400 GByte A z Ops Geschätzte Laufzeit auf AMD Opteron 250 bei 25% Peak für 500 Zeitschritte: 26 Tage Aber: Explizite Zeitdiskretisierung erfordert kleinere Schrittweite! 13

15 Wikipedia: Hochleistungsrechnen Hochleistungsrechnen ist ein Bereich des computergestützten wissenschaftlichen Rechnens. Er umfasst alle wissenschaftlichen Rechenarbeiten, deren Bearbeitung einer hohen Rechenleistung oder Speicherkapazität bedarf. Für die exakte Abgrenzung des Hochleistungsrechnens von den anderen Bereichen des wissenschaftlichen Rechnens gibt es aufgrund der schnellen Entwicklung der Rechentechnik keine dauerhaften formalen Kriterien. Es ist aber allgemein anerkannt, dass Rechenanwendungen, deren Komplexität oder Umfang eine Berechnung auf einfachen Arbeitsplatzrechnern unmöglich oder zumindest unsinnig macht, in den Bereich des Hochleistungsrechnens fallen. 14

16 Beispiele für Höchstleistungsechner Auszug aus der 27. TOP 500-Liste Reihenfolge basiert auf Linpack Benchmark Multiprozessor- Maschinen! 15

17 Beispiele für Höchstleistungsechner Die ersten 10 Rechner, die unter Geophysics gelistet werden! 16

18 Zwei Systeme von besonderem Interesse Bundeshöchstleistungsrechner HLRB II / SGI Altix 4700 Leibniz-Rechenzentrum Garching TETHYS = Tectonic High-Performance Simulator Geowulf / Fujitsu-Siemens Lehrstuhl für Geophysik 17

19 Hochleistungsrechnen und Parallelität Hochleistungsrechnen in unserem Sinne ist stets mit einer Form von Parallelität verbunden. Idee der Parallelisierung ist Laufzeitbeschleunigung durch Verteilung von Arbeit auf mehrere Schultern Parallelität existiert auf verschiedensten Ebenen und läßt sich auf verschiedene Weisen Klassifizieren. 18

20 Klassifikation von Parallelität 1 (aus Sicht der Computerarchitektur) mikroskopisch "versteckt" in speziellen Komponenten z.b. Rechenwerk makroskopisch "offen sichtbar" im Design z.b. Quad Board symmetrisch mehrere identische Bausteine z.b. Quad Board unsymmetrisch unterschiedliche Elemente parallel aktiv, z.b. Coprozessor 19

21 Klassifikation von Parallelität 2 fine grain auf der Ebene einzelner Instruktionen/Datenelemente coarse grain auf Ebene ganzer Programme/ grosser Datenbloecke explizit Programmierer nimmt explizit Einfluss auf parallele Einheiten implizit direkte Einflussnahme nicht notwendig 20

22 Klassifikation nach Flynn Man unterscheidet nach Flynn (1966) vier Formen der Parallelität im Hinblick auf Datenstrom und Anweisungsstrom single instruction stream multiple instruction stream SISD MISD single data stream SIMD MIMD multiple data stream 21

23 Single Instruction Single Data Klassische Architektur des 1-Prozessor-Rechners (sequential architecture). Es gibt einen Strom an Programmanweisungen der einen Strom an Daten bearbeitet. SISD besitzt nur interne Parallelität im Prozessor (implizit) Pseudoparallelität durch Multitasking/Time-Sharing 22

24 Single Instruction Multiple Data Eine Anweisung (z.b. Addition) wird gleichzeitig auf einer Vielzahl von Datenelementen ausgeführt: Prozessorfelder: (z.b. Connection Machine 2) viele, aber dafür sehr einfache Prozessoren Daten sind auf Prozessoren verteilt Programm wird im Gleichschritt abgearbeitet Alternativen/Branches (if-then-else) ineffizient 23

25 Single Instruction Multiple Data Vektorrechner/Vektorprozessor: (z.b. verschiedene Cray-Modelle) Skalare Multiplikation auf einer SISD-Architektur for k = 1 to N do v[k] α v[k] end for Auf Vektorprozessoren erledigt dies eine einzelne Instruktion v α v Zusammenhang Vektorlänge von v und Hardwarekapazität (typisch 2 k ) spielt eine Rolle Reine Vektorrechner heute kaum noch im Einsatz, aber Vektor(co-)prozessoren z.b. im Earth Simulator 24

26 Multiple Instruction Multiple Data Mehrere Prozessoren führen parallel verschiedene Berechnungen/Manipulationen auf verschiedenen Datenströmen aus. Berechnungen müssen nicht unabhängige voneinander sein konkurrierend (gemeinsame Resourcen, Threads) kommunizierend (Datenaustausch, MPI-Prozesse) MIMD-Beispiel: SMP = Symmetrisches Multiprocessing (z.b. Dual- Board mit gleichen Prozessoren) Unterform: Single Program Multiple Data (SMPD) = jeder Prozessor führt das gleiche Programm aus (aber kein Gleichschritt!) 25

27 Klassifikation nach Speicherzugriff Memory Memory Memory Memory Memory Processor Processor Processor Processor Network distributed memory z.b. Cluster Explizites Message Passing Standard: MPI Processor Processor Processor Processor shared memory z.b. SMP or NUMA Parallel auf Thread/Schleifenebene Standard: OpenMP 26

28 Prozess versus Thread Prozess: Unter einem Prozess versteht man eine laufende Instanz eines Programms. Ein Prozess verfügt/gebietet über einen privaten Satz Ressourcen (Speicher, Dateideskriptoren, Sockets,... ) Thread: Threads stehen hierarchisch unterhalb von Prozessen. Ein Thread verfügt (aus Betriebssystemsicht) über keine eigenenen exklusiven Ressourcen, sondern teilt diese mit allen Threads seines Prozesses. 27

29 Kenngrößen paralleler Programme Zur Leistungsbewertung paraller Algorithmen existieren verschiedenen Kenngrößen Speedup: Für einen Algorithmus A und ein Problem der Größe N sei t 1 (N) die Laufzeit auf einem Prozessor t p (N) die Laufzeit auf p Prozessoren Der relative Laufzeitgewinn (Speedup) definiert sich als S p (N) = t 1(N) t p (N) 28

30 Speedup & Overhead Idealerweise würde man sich bei p Prozessoren einen Speedup von S p = p wünschen. Realistisch? 1 Arbeiter braucht 1 Stunde um und 1000 Arbeiter? eine Grube von 1m 3 auszuheben Problem: Gegenseitige Behinderung, hoher Organisationsaufwand! 29

31 Amdahlsches Gesetz Jeder Algorithmus besitzt Anteile, die sich nicht parallelisieren lassen. σ := serieller Anteil des Algorithmus π := paralleler Anteil des Algorithmus Es ist σ + π = 1 und der ideale Speedup S max p = t 1 t max p = σ + π σ + π/p = 1 σ + (1 σ)/p 1 σ ist nach oben beschränkt! 30

32 Beispiel Bei einem seriellen Anteil von σ = 1% ergibt sich folgendes Bild S p (N) no. of processors Eine Steigerung um Faktor 10 von 100 auf Prozessoren bewirkt nicht einmal eine Verdoppelung des Speedups! 31

33 Bemerkungen Das Amdahlsche Gesetz berücksichtigt nicht explizit die Kosten für Kommunikation/Synchronisation können Speedup weiter verringern. Es kann zu super-linearem Speedup kommen! Z.B. durch Cache- Effekte oder wenn die lokalen Algorithmen nicht-linear skalieren. Ein Problem konstanter Größe kann nicht beliebig beschleunigt werden Andererseits lassen sich mit mehr Prozessoren auch größere Probleme rechnen σ nimmt ab 32

34 Scaleup: Scaleup Sei κ die Problemgröße pro Prozessor, dann definiert sich der skalierte Speedup als SS p (κ) = t 1(pκ) t p (κp) Unter der Annahme, daß der parallele Anteil optimal bzgl. der Problemgröße ist, gilt SS p (κ) = σ + p π σ + π = σ + p(1 σ) 33

35 Literatur Douglas Comer: Essentials of Computer Architecture, Pearson Prentice Hall Gundolf Haase: Parallelisierung numerischer Algorithmen für Partielle Differentialgleichungen, Teubner 34

36 Teil #2 Grundlagen der Rechnerarchitektur von Neumann Architektur, Prozessorencharakteristika, CISC/RISC, Register, Pipelining,... 35

37 Organisation von Rechenanlagen Prinzipielle Frage: Wie soll eine Rechenmaschine aufgebaut/organisiert sein? Wie sollen Berechnungen kontrolliert und gesteuert werden? Burks, Goldstine and von Neumann: Preliminary Discussion of the Logical design of an Electronic Computing Instrument, U. S. Army Ordonance Dept. Report 1946, Resultierendes Konzept von Neumann Architektur auch heute noch Grundlagen der meisten Systeme 36

38 von Neumann Architektur I MEMORY CONTROL UNIT ARITHMETIC LOGIC UNIT PROCESSOR INPUT/OUTPUT FACILITIES 37

39 von Neumann Architektur II Erste Rechenmaschine, die das Konzept umsetzt: Institute for Advanced Studies (IAS) Computer,

40 von Neumann Architektur / Details I besteht aus vier Grundeinheiten: Steuer- und Rechenwerk Hauptspeicher Ein-/Ausgabesystem verbunden durch einfache Bussysteme Universalrechner Nicht auf eine Anwendung beschränkt Daten und Progamm (stored program approach) werden im gemeinsamen Hauptspeicher abgelegt 39

41 von Neumann Architektur / Details II Hauptspeicher ist in Zellen aufgeteilt identische Größe Konsekutive numeriert (Adressen) Ein Programm besteht aus einer Abfolge von Anweisungen (Instructions) an den Prozessor Programmablauf ist dynamisch veränderbar Binärer Aufbau, zwei Werte pro Digit: 0/1 40

42 von Neumann Architektur / Details III von Neumann Architektur noch immer dominant (wird in allen populären Systemen/Chips verwendet) Geringfügige Modifikationen Steuer- und Rechenwerk bilden eine Einheit: CPU Neuartige Anschlüsse an Speicher und IO (z.b. Direct Memory Access (DMA), Hypertransport) Erweiterungen des Konzepts Mehrer Rechenwerke / CPUs Parallelverarbeitung 41

43 Was charakterisiert einen Prozessor? 42

44 Was charakterisiert einen Prozessor? Taktfrequenz Stromverbrauch Anbindung an Speicher & IO Caches: Art & Größe Datenrepräsentation / Endianess Instruktionssatz (CISC, RISC, EPIC,... ) Register: Anzahl & Verwendung Anzahl Cores... 42

45 Typen von Prozessoren Fixed logic: führt eine fest-verdrahtete Funktion aus; Beispiel: Berechne sin(x), einzelne Graphikoperation Selectable logic: kann mehrere fest-verdrahtete Funktion ausführen; Auswahl wenn Prozessor angesprochen wird; Beispiel: Berechne sin(x) oder cos(x) Parameterised logic: Zusätzliche Flexibilität durch Parametrisierung der Funktion; Beispiel: Hash- Funktion h(x) mit Parameterpaar (p, q) Programmable logic: Flexibelste Variante; Bei jedem Aufruf des Prozessors kann Art und Reihenfolge der Operationen bestimmt werden; Beispiel: Rechner-CPU 43

46 Idealisierter Aufbau Steuerwerk (Controller) Rechenwerk internal connections typischerweise eine Arithmetic Logical Unit (ALU) und separate Floating Point Unit (FPU) ALU controller local storage lokaler Speicher (Cash / Register) interne Verbindungen external interface externes Interface 44

47 Fetch-Execute-Cycle Das Steuerwerk bildet die Zentrale der CPU und steuert die Abarbeitung der Programme über den Von-Neumann-Zyklus: loop FETCH {hole nächste Programminstruktion} DECODE {entschlüssele Instruktion} FETCH OPERANDS {lade benötigte Operanden} EXECUTE {führe Operation durch} UPDATE INSTRUCTION POINTER {erhöhe Befehlszähler} end loop 45

48 Taktrate und Instruktionsrate Die Taktung des Prozessor (z.b. 2,4 GHz) gibt die Rate vor mit der die digitale Logik arbeitet. Der Fetch-Execute-Cycle hat aber keine fixe Taktung, denn Instuktionen benötigen unterschiedlich lange Ausführungszeiten. Integer Floating Point schnell langsam Addition Division 46

49 Instruction Set Architecture Ein Prozessor wird im wesentlichen durch seine Instruction Set Architecture beschrieben: Native Datenformate und deren Speicherung Zugriff auf Operanden (Register, Stack,... ) Zur Verfügung stehende Instruktionen Klassifikation: CISC vs. RISC Privilegien und Schutzmechanismen Sprache und Grammatik des Prozessors 47

50 CISC vs. RISC CISC = Complex Instruction Set Computer großer Umfang (mehrere Hundert) von teils sehr mächtigen Befehlen erlaubt kleine ausführbare Programme komplexe (langsame) Implementierung RISC = Reduced Instruction Set Computer kleiner (z.b. 32) Satz einfacher Befehle einfache, effiziente Implementierung 48

51 CISC vs. RISC 2 Die Unterscheidung zwischen CISC (z.b. Intel/AMD x86er) und RISC (z.b. DEC Alpha, Sun SPARC, MIPS) werden immer unwesentlicher: RISC Prozessoren werden komplexer CISC Prozessoren übernehmen RISC Konzepte Pentium Pro und Co. haben eine CISC nach RISC Vorstufe Neue Konzepte kommen: z.b. Explicitly Parallel Instruction Computing (EPIC) bei Itanium 49

52 Instruktionstypen Die Befehle eines Instruktionssatz bestehen aus mehreren Hauptgruppen: Arithmetische Instruktionen (Integer) Logische Instruktionen (Booleans) Datenzugriff und Datentransfer Kontrollfluß (Branching) Gleitpunktinstruktionen Befehle zur Prozessorsteuerung 50

53 Floating Point Instruktionen MIPS Architektur Arithmetic FP add FP subtract FP multiply FP divide FP add double FP subtract double FP multiply double FP divide double Data Transfer local word coprocessor store word coprocessor Conditional Branch branch FP true branch FP false FP compare single FP compare double floating point addition floating point subtraction floating point multiplication floating point division double precision addition double precision subtraction double precision multiplication double precision division load value into FP register store FP register to memory branch if FP condition is true branch if FP condition is false compare two FP registers compare two double precision values 51

54 Register Register sind Speicherplätze innerhalb des Prozessors schneller Zugriff (Beispiel: Digital Alpha PWS 500au A21164, Register 2 ns, Hauptspeicher 112 ns) kurze Adresse dienen zum Speichern von Daten, Befehlen, Zuständen oder Zählern Register werden nach Verwendungszweck unterschieden. 52

55 Beispiel: IA-64 Architektur (Itanium 2) unterscheidet 10 verschiedene Typen: Typ Anzahl Verwendung General Purpose Bit breite Mehrzweckregister Floating Point Bit breite Gleitpunktregister (±, 64-Bit Mantisse, 17 Bit Exponent) Branch 8 für indirekte Sprünge, z.b. Rücksprungadresse bei Unterroutinenaufruf Predicate 64 Wahrheitswerte für Vergleich und Test sowie Instruction Pointer, Current Frame Marker, Application Registers, Performance Monitor Data Registers, User Mask und Processor Identification Registers 53

56 Leistungssteigerung durch Parallelität Fließband-Verarbeitung der Befehle (Pipelining) Gleichzeitige Ausführung mehrerer Befehle (Superskalarität) Gleichzeitige Ausführung mehrerer Befehlsströme (Simultaneous Multithreading) 54

57 Pipelining 1 Erinnerung: Befehlszyklus / Fetch-Execute-Cycle Instruction Fetch IF Instruction Decode ID Fetch Operands FO Execute EX Store Result / Write Back WB 55

58 Pipelining 2 Abarbeitung eines einfachen Befehlsstroms (ohne Sprünge) Befehl 1 Befehl 2 IF ID FO EX WB IF ID FO EX WB IF ID 1 Takt Zeit RISC: Die einzelnen Schritte werden durch verschiedene Einheiten der CPU ausgeführt = Optimierungspotential 56

59 5-stufige Befehlspipeline IF ID FO EX WB IF ID FO WB WB IF ID FO EX WB IF ID FO EX WB IF ID FO EX WB IF ID FO EX WB IF ID FO EX WB IF ID FO EX WB IF ID FO EX WB Ausführung eines Befehls braucht immer noch 5 Takte Aber: Im Schnitt wird pro Takt ein Befehl fertig 57

60 Pipeline Stall Befehl K: C add A B Befehl K+1: D subtract E C IF K K+1 K+2 K+3 K+4 K+5 ID K 1 K K+1 K+2 K+3 K+4 FO K 2 K 1 K (K+1) (K+1) K+1 K+2 K+3 EX K 3 K 2 K 1 K K+1 K+2 WB K 4 K 3 K 2 K 1 K K+1 Befehlsabhängigkeit nur eine mögliche Ursache für Pipelinekonflikte 58

61 Weitere Stichworte zur Performanzbeschleunigung Branch Prediction Out-of-order Execution Look-Ahead... Manche Konzepte (z.b. Pipelining, Branch Prediction) lassen sich von einer Hochsprache (Fortan, C,... ) aus (indirekt) beeinflussen, die meisten aber nicht ( Compiler-Optimierung) 59

62 Bits, Bytes und Worte Bit: Kleinste Informationeinheit; ein Binary Digit kann nur die zwei Werte 0 oder 1 annehmen Byte: Eine zusammenhängende Menge von Bits, heute immer 8 Bit Wort: Der Hauptspeicher eines Rechners ist in gleichgroßen Stücken = Worte zusammengefaßt; entspricht der Speicherbusbreite des Systems; jeder Scheib-/Lesezugriff betrifft immer ein ganzes Wort (z.b. 64-Bit System: 1 Wort = 4 Byte) 60

63 Bitanordnung Die Bits innerhalb eines Bytes werden wie bei Dezimalzahlen auch von links/kleinste Potenz nach rechts/größte Potenz gespeichert one byte most significant bit least significant bit = = 83 61

64 Endianess 1 Was tun bei Multi-Byte Größen? a+3 a+2 a+1 a a+3 a+2 a+1 a Big Endian z.b. Motorola 68000, SPARC, PowerPC Little Endian z.b. Intel x86, IA-32 62

65 Endianess 2 Big-Enders versus Little-Enders 63

66 Endianess 3 Beispielcode in C: typedef enum { LITTLE_ENDIAN, BIG_ENDIAN } HOST_SEX; HOST_SEX get_byte_order() { int i = 1; char *p = (char *) &i; } /* Lowest address contains the least significant byte */ if ( p[0] == 1 ) { return LITTLE_ENDIAN; } else { return BIG_ENDIAN; } 64

67 Literatur Douglas Comer: Essentials of Computer Architecture, Pearson Prentice Hall Carsten Trinitis: Computer Architecture and Networks, Folien zur Vorlesung, WS 05/06, LRR, TUM Michael Gerndt: Rechnerarchitektur, Folien zur Vorlesung, WS 05/06, LRR, TUM 65

68 Teil #3 Speichertechnologien physikalischer Speicher, virtuelle Speicheradressierung, Caches (Dank an M. Kowarschik, U. Rüde und J. Treibig für die Erlaubnis ihre Folien zu plündern) 66

69 Speichertechnologien volatile Speicherinhalt verschwindet bei Stromabschaltung non volatile z.b. Festplatte, Digitalkamera random access zu jeder Zeit auf beliebige Speicherstellen zugreifbar sequential access FIFO (first in first out) Prinzip read/write access Speicherinhalt kann beliebig veraendert werden read only access z.b. WORM Systeme wie CDROMs 67

70 Hauptspeicher eines Computers Beim Hauptspeicher eines Computers handelt es sich um ein volatiles System, das beliebige Zugriffe (random access) mittels Schreib/Lese-Operationen (read/write) erlaubt. Das System arbeitet nach dem Fetch-Store Paradigma, d.h. es kennt nur zwei Operationen: Lade ein Datum aus dem Speicher (fetch/read/load) Schreibe ein Datum in den Speicher (store/write) Der Hauptspeicher ist in Einheiten (Worte) gleicher Größe unterteilt Speicherbusbreite 68

71 Wort- versus Byteadressierung Pro Fetch/Read bzw. Store/Write Operation wird stets ein ganzes Wort geschrieben Speicher kann entweder Wort- oder Byteadressierbar (standard) sein Wort Wort Wort Wort Wort Wort Number-Crunchers sind/waren manchmal wortadressierbar (wegen Größe Float/Double & Adressraum) Memory-Controller für Byteadressierung muß umrechnen (einfach für Wort = 2 k Bytes) 69

72 Byte Alignment Sind gespeicherte Daten an den Wortgrenzen ausgerichtet? Manche Architekturen erlauben nichts anderes Ist z.b. ein Float nicht an einer Wortgrenze ausgerichtet, so dauert ein Schreib- /Lesevorgang länger unaligned float aligned float 2 4 Frage kann auch bei zusammengesetzen Datentypen/Speicherbereichen (Structs, Common-Blöcke,... ) eine Rolle spielen 70

73 Virtueller Speicher Das Konzept des virtuellen Adressraums wird heute bei allen gängigen Betriebssystemen eingesetzt: Jeder Prozess arbeitet auf seinem eigenen zusammenhängenden logischen Adressraum (für jeden Prozess beginnend z.b. bei Adresse Null) Eine Memory Management Unit (MMU) setzt logische/virtuelle Adressen in physikalische Hauptspeicheradressen um physikalischer Speicher und virtueller Adressraum werden in gleichgroße Teile (Seiten/pages) aufgeteilt (typisch 4 KB, kann auch deutlich größer sein) 71

74 Virtueller Speicher 2 Vorteile: Mehrbenutzer- und Mehrprozessfähigkeit Aus Sicht eines Prozesses ist sein Arbeitsspeicher linear Virtueller Speicher kann größer sein als Hauptspeicher Nicht benötigte Seiten können in den Hintergrundspeicher ausgelagert werden paging / page fault Unterstützt Zugriffsschutz 72

75 Virtueller Speicher 3 Seitentabelle: definiert für jede (virtuelle) Seite, die physikalische Adresse der zugehörigen Kachel (page frame) ist hierarchisch organisiert Translation Lookaside Buffer: Nachschlagen in Seitentablle aufwendig Spezieller Cache zur Beschleunigung 73

76 Main Memory The Problem Memory speed has 2 sides Bandwidth Latency Main memory is Off-Chip Fixed limit wire length / speed of light High Frequencies are difficult to handle for board manufactures Less engineering progress... 74

77 Main Memory Bandwidth Possibilities for improvement (for both CPU-Chipset, Chipset-Memory) Higher data width (more bits in parallel) Higher bus clock rate, double/quad-pumped (e.g. DDR) Memory bank interleaving Long bursts High-speed serial links (HyperLink, Rambus) easier for off-chip 75

78 Example on Improvement: Main Memory Bandwidth MHz Memory Bus, 64 Bit, SDRAM (PC100): max. 800 MB/s (ca. 1997) 200 MHz Mem. Bus, 128 Bit (2 Banks), DDR 400: max. 6,4 GB/s (ca. 2003) 400 MHz Mem. Bus, 128 Bit (2 Banks), DDR2 800: max. 12,8 GB/s (present) 76

79 Real Bandwidth Measurements 77

80 Main Memory Latency Latency for SDRAM typically 9 Cycles (at Memory Bus Clock Rate!) 1 from CPU to Chipset 1 from Chipset to RAM Chip 2 for RAS-to-CAS Delay (for Page Miss) 2 for CAS Latency 1 to get data to Output Buffer of RAM Chip 1 from RAM Chip to Chipset 1 from Chipset to CPU 78

81 Main Memory Latency 2 Assume 133 MHz Memory Bus Speed 1.3 GHz CPU: 90 Cycles (3 GHz: 207 Cycles) This does not improve much with DDR/DDR-II Getting worse with SMP machines Possibility for improvement Reduce latency on-board High-speed CPU-chipset (200MHz QDR P-4) Memory controllor in CPU (UltraSparc, Opteron) 79

82 Memory Wall = Die CPU kann ihre Geschwindigkeit nicht ausspielen, weil sie nicht schnell genug mit Daten versorgt werden kann! 80

83 Memory Wall 2 Bandwidth needs of CPUs (2 DP load + 1 store)/cycle and 3 GHz: 72 GB/s (Pentium 4) At best without latency at all Memory can deliver Max. 6,4 GB/s (Itanium-II) Best latency 66 ns (= 121 Cycles at 1,8GHz) Gap will be growing 81

84 Memory Wall Ausweg? Konzept der Computerarchitekten zum Umgang mit der Memory Wall ist eine ausgeklügelte Speicherhierarchie niedrig hoch ~ 1 KB Register ~ 1ns 16 KB 4 MB ~ 1GB ~ 1 TB Kapazitaet Cache Hauptspeicher Hintergrundspeicher Geschwindigkeit 1 10 ns ~ 100 ns ~ 10 ms >> 1 TB Archivspeicher >> 1 s hoch niedrig (Abb. nach M. Gerndt, LRR, TUM) 82

85 Caches: Memory Wall Ausweg? Small but fast on-board buffers holding copies of main memory content Requirements High bandwidth: Data paths with large width ( No Problem on-chip) Small latency: Tightly coupled to registers (Better use cache hierarchies!) Only works when cache copies are reused! 83

86 Literatur Douglas Comer: Essentials of Computer Architecture, Pearson Prentice Hall Michael Gerndt: Rechnerarchitektur, Folien zur Vorlesung, WS 05/06, LRR, TUM Die Webseite des DiME-Projekts (Data Local Iterative Methods for the Efficient Solution of Partial Differential Equations) und deren Referenzen 84

87 Teil #4 Memory Hierarchy & Caches cache design, associativity, data locality, cache misses 85

88 What is a Cache? fast buffer containing a section of a larger memory invisible to the application managed automatically typical: hierarchy of caches L1, L2 and sometimes L3 86

89 Data Locality and Effectivity Effectivity: Caches only help against the memory wall, when required data are located in the cache (cache hit), otherwise data must be loaded from higher-up in the hierarchy or main memory(cache miss) Temporal Locality: When a program accesses data at address XYZ it will again access these data soon afterwards Spatial Locality: When a program accesses data at address XYZ it will soon access data in the immediate vicinity of XYZ 87

90 Example: Locality Consider the multiplication of a vector v R n with a scalar α R we have: for k = 1 to n do z[k] = α v[k] end for temporal locality for α (re-used immediately n-times) spatial locality for v and z (if v, z stored contiguously) 88

91 Hit Ratio and Latency Cache efficiency is characterised by the cache hit ratio h, i.e. the probability for a cache hit. The effective (average) latency of a memory architecture including cache is t eff = h t cache + (1 h) t memory with t cache = latency of cache access t memory = latency of main memory access 89

92 Speedup S eff = t memory t eff = 1 h 1 ( ) 1 t cache tmemory S eff example for t cache = 0.1 t memory = need cache hit ratio > 90% for significant speedup! cache hit ratio h 90

93 Basic Structure of a Cache Cache sees main memory as equally sized blocks: cache lines Single data access always triggers load of complete cache line loading large chunks comparatively cheap exploitation of spacial locality Cache needs managment infrastructure to determine whether data are located in cache and for load/store strategies Cache needs for each stored cache line a tag to identify addresses in main memory Cache needs additional status bits (e.g. dirty bit) 91

94 Associativity cache main memory how to associate a cache line in main memory with a line in the cache? three different variants: direct mapped cache set-associative cache fully associative cache 92

95 Direct Mapped Cache memory block 0 xyz 1 2 tag 0 tag 1 cache value abc 0 abc tag 1 0 xyz 1 rst 3 2 opq rst 3 opq 1 2 tag tag

96 Direct Mapped Cache 2 a cache line in main memory is mapped to a unique line in cache + small address tags + management of tags, addresses,... cheap tag line index offset not very flexible, susceptible to displacement problems 94

97 Cache: Example: Displacement 256 line with 16 Bytes each Stored Object: matrix with 4 Byte entries (floats) Fortran layout Application: process matrix rows (e.g. in matrix-vector product) 95

98 Example: Displacement (cont.) a 1,1 a 2,1 a 3,1 a 4,1 block 0, tag 0 a 5,1 a 6,1 a 7,1. a 8,1 block 1, tag 0.. a 1021,1 a 1022,1 a 1023,1 a 1024,1 block 255, tag 0 a 1,2 a 2,2 a 3,2 a 4,2 block 0, tag 1 a 5,2 a 6,2 a 7,2 a 8,2 block 1, tag 1 = accessing row A(:, 1) in sequence loads row from main memory = no positive cache effect! 96

99 Fully Associative Caches In a fully associative cache each cache line in main memory can be loaded to any location in the cache. + highest flexibility + highest hit rate costs for tag-comparison very high 97

100 Set Associative Caches k way associative: set of k locations to store a certain cache line compromise between flexibility and costs most often found k is a power of two: typically 2 or 4 direct mapped k = 1, fully associative k = # locations 98

101 Replacement Strategies k-way associative caches (k 2) need a replacement strategy wich cache line to remove from set for newly loaded one? First In First Out (FIFO) Least Frequently Used (LFU) Least Recently Used (LRU) Random 99

102 Write Policies There are two general policies when writing values to cache Write Through: value is written to cache and also passed on to the next higher level (cache or main memory) Write Back: value is written to cache only; write to higher level only occurs when cache line is removed (dirty bit) In case of a write miss there are also two alternatives Write allocate: cache line containing value to be modified is loaded into cache Write around: value is modified directly in higher level of hierarchy 100

103 Data and Instruction Caches L1 level is typically split into two separate caches data cache for data instruction cache for commands access patterns are very different allows for extra optimisation 101

104 Classification of Cache Misses Cache misses can be sub-dived into three types: Compulsory (cold) misses address is accessed/touched for the first time unavoidable even with infinitely large cache Capacity misses requested value was evicted from cache due to limited capacity Conflict misses requested value was evicted from cache due to limited associativity does not occurs with fully associative caches 102

105 Cache Design Optimisation Cache Design Optimisation tries to improve on the following quantities: Miss Rate: statistical average how often a cache miss occurs Miss Penalty: time penalty for a cache miss (worst case scenario: time to load data from main memory) Access Time: in case of a cache hit time for loading the data item 103

106 Cache Design Optimisation 2 Cache Design is always a compromise of multiple sorts, e.g.: Larger Caches: + less capacity misses higher costs Higher Associativity: + reduces conflict misses increases complexity and access time Larger Cache Line Size: + exploits temporal locality decreased miss rate increases miss penalty 104

107 Example: Characteristics of Data Caches cache associativity line size hit latency sizes k way in bytes L1 cache AMD Opteron 250 TETHYS L1: 64 KB L2: 1 MB L3: cycles Itanium2 Madison 9M HLRB-II L1: 16 KB L2: 256 KB L3: 6 MB 4/8/12 64/128/128 1 cycle 105

108 Example: Influence of Cache Hierarchy Performance of Fortran code for α = v T v (see DiME) 106

109 Code Optimisation for Memory Hierarchies Data Layout Optimisations Array padding Array Merging Grid Compression Data Access Optimisations Loop Interchange Loop Fusion Loop Blocking unit on performance optimisation 107

110 Literature S. Goedecker and A. Hoisie, Performance Optimization of Numerically Intensive Codes, SIAM, 2001 M. Gerndt: Rechnerarchitektur, Folien zur Vorlesung, WS 05/06, LRR, TUM Webpage of the DiME project (Data Local Iterative Methods for the Efficient Solution of Partial Differential Equations) 108

111 Teil #5 Datenrepräsentation Darstellung reeller Zahlen, IEEE Floating Point standard 109

112 Darstellung reeler Zahlen Das System R der reellen Zahlen ist unbegrenzt und lückenlos: Zu jedem y R existieren x, z R mit x < y < z Zu jedem Paar x, z R existiert y R mit x < y < z Approximation auf dem Rechner erfolgt durch ein endliches Zahlensystem, z.b. Festkommazahlen Gleitkommazahlen 110

113 Gleitkommazahlen Jede reelle Zahl x läßt sich als Gleitkommazahl darstellen x = M B E mit M B E Signifikand/Mantisse Basis Exponent Beispiel: Basis = = 2, = 0, Basis 2 24 = = = 1,

114 Gleitkommazahlen Um eine eindeutige Zahldarstellung (für R\{0}) zu erhalten normalisiert man und verlangt, daß 1 M = d 0 + d 1 B d t 1 B (t 1) < B t N gibt die Stellenzahl bzgl. der Basis B an Beispiel: t = 2 Basis = 2, , 4 < 10 2, 4 = Basis 2 24 = 1, , 5 < 2 1, 5 =

115 Maschinenzahlen Auf einem Rechner sind Signifikand und Exponent endliche, ganze Zahlen. Die auf einer Maschine exakt darstellbaren Zahlen heißen Maschinenzahlen. Für reelle Zahlen ist dies wobei M B,t,α,β = { M B E} M Z und M = 0 oder 1 M < B E Z und α E β t N 113

116 Beispiel: Zahlen in M 2,4, 3,1 Mantisse L, OOO L, OOL L, OLO L, OLL L, LOO L, LOL L, LLO L, LLL 1, 000 1, , 375 1, 500 1, 625 1, 750 1,

117 Implementierung Die technische Implementierung (reellwertiger) Maschinenzahlen beruht üblicherweise auf drei Ansätzen: Normalisierung Implizite Annahme über das erste Bit des Signifikanden Biased Exponent um negative Werte zu erlauben Die meisten Systeme verwirklichen den IEEE Standard für Gleitkommazahlen. 115

118 IEEE? Hinter der Abkürzung verbirgt sich das Institute of Electrical and Electronics Engineers, Inc. weltweiter Berufsverband von Ingenieuren aus den Bereichen Elektround Informationstechnik und Informatik veranstaltet Fachtagungen, gibt Zeitschriften heraus,... bildet Gremien für die Normung von Techniken, Hardware und Software (IEEE-Standards für Ethernet, WLAN,... ) 116

119 IEEE Floating Point Standard(s) Die IEEE-Standards IEEE Standard 754 for Binary Floating-Point Arithmetic (1985) IEEE Standard 854 for Radix-Independent Floating-Point Arithmetic (1987) beschäftigen sich mit der internen Darstellung von Gleitkommazahlen verfügbaren Genauigkeitsstufen Behandlung von Ausnahmen (Exceptions) Rundung 117

120 IEEE Standard: Speicherung IEEE 754 legt die Zahldarstellung folgendermassen fest + Exponent Signifikand 1 Bit für das Vorzeichen K Bits für den (biased) Exponenten N Bits für den Signifikanden (+ hidden bit ) 118

121 IEEE Standard: Genauigkeiten IEEE 754 legt drei Genauigkeitsstufen fest Genauigkeit Bits für Gesamtgröße Signifikand Exponent single precision Byte double precision Byte extend ed precision Byte davon sind single und double die gebräuchlichsten. 119

122 IEEE Standard: Exponentenbereich Beispiel: single precision 8 Bit Wertebereich biased Exponent: 0 Ẽ (28 1) = 255 Bias 127 Wertebereich unbiased Exponent 127 E 128 Minimaler & maximaler Exponent reserviert für spezielle Werte 126 E

123 Rundung: Maschinengenauigkeit Bei endlicher Gleitpunktarithmetik muß das Ergebnis jeder Operation (z.b. a + b) zur nächstgelegenen Maschinenzahl gerundet werden. Maschinengenauigkeit: Als Maschinengenauigkeit bezeichnet man den größten relativen Rundungsfehler eps(x) = x rd(x) x 121

124 Maschinengenauigkeit II Für x R mit x min x haben wir für rd(x) = x x = σ B E mit 1 σ < B x = σ B E mit 1 σ B folglich gilt eps(x) = σ B E σ B E σ B E σ σ 1 2 B(1 t) und eps mach = 2 t für B =

125 IEEE Standard: Wertebereiche Genauigkeit single precision double precision E min E max x min 1, x max 3, , eps mach 6, , significant decimals

126 IEEE Standard: Spezielle Werte I NaN NaN = Not a Number, Ergebnis undefinierter Operationen wie z.b. 1, 0, 0/0 oder Operationen mit NaN als Operand ± Unendlich ist das Ergebnis eines overflows, d.h. Resultat liegt ausserhalb der Grenzen des darstellbaren Bereichs, oder Operationen wie ±10/0 = ± und + 3 = ±0 Es wird intern zwischen +0 und -0 unterschieden; wichtig z.b. für underflow oder Unterscheidung ob Resultat ± subnormals subnormals sind nicht-normalisierte Zahlen; dienen dazu die Lücke um 0 zu verkleinern 124

127 IEEE Standard: Spezielle Werte II Exceptions: Der IEEE standard unterscheidet fünf Ausnahmetypen: overflow, underflow, Division durch Null, ungültige Operation und unexakt. Status Flag: Tritt eine Ausnahmesituation auf wird ein Status-Flag gesetzt, welches abgefragt werden kann Quiet und Signaling NaNs: Default ist, wenn möglich nach einer Ausnahme weiterzurechnen (quite NaNs); der Standard sieht (theoretisch) die Möglichkeit vor, bei jeder Exception abbrechen zu lassen (signaling NaN), wie auf nicht IEEE-System typisch 125

128 IEEE Standard: Zusammenfassung Exponent Signifikand Bedeutung E = e min 1 s = 0 ±0 E = e min 1 s 0 0.s 2 e min e min E e max s 1.s 2 E E = e min + 1 s = 0 ± E = e min + 1 s 0 NaN Übersicht über die Bedeutung der Werte einer Gleitkommazahl nach dem IEEE-Standard 126

129 Ausblick Was gibt es sonst noch? Unterstützung für Berechnungen mit endlicher, aber flexibel einstellbarer Genauigkeit (z.b. GNU Multi-Precision Library oder auch Computeralgebrapakete wie Maple oder Mathematica) symbolische Berechnung (Computer Algebra) Interval-Arithmetik 127

130 Literatur David Goldberg: What Every Computer Scientist Should Know About Floating-Point Arithmetic, ACM Computing Surveys, vol. 23,

131 Teil #6 Design of HPC Systems Distributed vs. Shared Memory, Hybrid Approaches, Interconnect Topologies, TETHYS, HLRB II 129

132 Basic Paradigms Memory Memory Memory Memory Memory Processor Processor Processor Processor Network distributed memory e.g. clusters explicit message passing standard: MPI Processor Processor Processor Processor shared memory e.g. SMP or NUMA parallelisation on thread/loop level standard: OpenMP 130

133 Current Trends Typical HPC systems today employ a hybrid approach Memory Memory consisting of several SMP nodes Processor Processor Processor Processor Processor Processor Processor Processor and communicating in a distributed memory fashion via a network Network Example: Retired HLRB I (Hitachi) 168 SMP nodes Memory Memory each node contained 9 CPUs (8 for computation, 1 for communication) Processor Processor Processor Processor Processor Processor Processor Processor 8 GB memory per node 131

134 Advancing SMP Systems large scale shared memory systems are no longer symmetric, but use a NUMA approach instead. ccnuma stands for cache-coherent non-uniform memory access. In a NUMA system each processor/core has direct access to complete system memory. However, access time depends on distance of respective memory block from the processor/core. 132

135 NUMA example: SGI Origin CPUs with local memory in a single compute brick (C-Brick) different memory access patterns (varying distance) remote access passes (several) R-Bricks (router bricks) (figures: RRZE) 133

136 Some Network Terminology Topology: denotes the interconnections of a network of compute nodes; one distinguishes between phyiscal (hardware-based) and logical/virtual (software-based) topology Link/Hop: a direct connection between two compute nodes; either uni- or bi-directional Diameter: the diameter of a topology is the maximal number of hops/links a message must pass to travel between arbitrary nodes p and q 134

137 Sample Network Topologies completely connected 3D hypercube 2D torus 1D ring tree 135

138 Completely connected topology: Hypercubes + smallest diameter / fastest approach high costs for large number of nodes Hypercube: hypercubes were long seen as optimal compromise asssume N = 2 n compute nodes we need n bits for ids hypercube connects each node to all nodes whose id differs in one bit n neighbours 136

139 Interconnect Technologies common interconnect technologies for clusters today include: (gigabit) ethernet with TCP/IP as transport layer without TCP/IP (for reduced latency) Myrinet InfiniBand differ in latency ( 1.3µs to > 40µs), bandwidth (up to 96 GBit/s) and costs; are all switched fabric interconnects 137

140 Aufbau unserer zwei Zielsysteme Bundeshöchstleistungsrechner HLRB II / SGI Altix 4700 Leibniz-Rechenzentrum Garching TETHYS = Tectonic High-Performance Simulator Geowulf / Fujitsu-Siemens Lehrstuhl für Geophysik 138

141 Tethys Munich Geophysics Cluster: Tectonic high performance simulator intended for capacity computing / three to four key applications (seismic wave propagation, geodynamic modeling) currently consists of: 1 head node, 64 compute nodes plus 1 spare 139

142 Hardware specification of the 64 compute nodes no. of processors type of processors clock speed L1 cache L2 cache local memory local storage network interface two per node AMD Opteron 250 (64 bit, single core) 2.4 GHz 64/64KB (data/instruction) 1MB (data + instruction) 2 GB RAM (DDR1) 160 GB 1000T Ethernet (2 ports) 140

143 Cluster Topology 141

144 Example: Communication on Tethys two example results from the Intel MPI Benchmark Suite 1e np = 4 (1 CPU/node) 8 (1 CPU/node) 16 (1 CPU/node) 32 (2 CPU/node) 128 (2 CPU/node) 1e np = 4 (1 CPU/node) 8 (2 CPU/node) 16 (1 CPU/node) 32 (2 CPU/node) 128 (2 CPU/node) t [µsec] t [µsec] e e+06 message size [8-byte units] message size [8-byte units] exchange test allreduce test point-to-point communication collective communication 142

145 Höchstleistungsrechner in Bayern II Investitionsvolumen: 38 Mio e teilen sich Bund und Land (HBFG-Programm) Inbetriebnahme durch (v.l.n.r.) Prof. H.- G. Hegering (LRZ), Dr. E. Stoiber (Bayern), D. McKenna (SGI), Prof. D. Willoweit (BAW), Dr. A. Schavan (BMBF) Quelle Photo: LRZ dient als neuer nationaler Höchstleistungsrechner Nachfolger des HLRB I: Hitachi SR

146 Höchstleistungsrechner in Bayern II Aufstellung des Systems in mehreren Phasen: Migrationssystem, Phase 0 (Intermediate), Phase 1 (aktuell), Phase 2 (upgrade) Kennzahlen (Phase I): # cores/processors 4096 (Itanium2) peak performance 26.2 TFlop/s memory size 17.5 TByte direct attached disks 300 TByte operating system Linux footprint weight electrical power 24 m 12 m 100 t 1000 kva 144

147 Granularity and Interconnect I HLRB II is a hybrid system based on the SGI R NUMAflex architecture consisting of large interconnected ccnuma SMP nodes Compute Nodes: # of compute nodes 16 # of cores per compute node 256 single system image (SSI) per node NUMAlink interconnect: # of links per core 2 bandwidth per link (bidirectional) 6.4 GByte/s MPI latency 1-6µs 145

148 Granularity and Interconnect II 146

149 Granularity and Interconnect III Quelle Graphik: LRZ 147

150 Granularity and Interconnect IV Inter-Partition NUMAlink configuration Quelle Graphik: LRZ 148

151 Teil #7 Anwendung: Partielle Differentialgleichungen Volumendiskretisierung, dünnbesetzte lineare Gleichungssysteme, lineare Iterationsverfahren 149

152 One Major Consumer of Resources Many simulation codes involving PDEs spend most of their time with the inversion of linear systems resulting from discretising those PDEs. Example: Callgraph of TERRA advance is the basic time-step driver axu3s driver for computing v = v Au oprxuf computes v = v Au (on fine grid) oprxuc computes v = v Au (on coarse grids) 150

153 Discretisation Techniques for PDEs In practice the four most important disretisation methods are: Finite Differences Finite Elements Finite Volumes sparse matrix sparse matrix sparse matrix volume discretisation techniques Boundary Elements dense matrix } surface discretisation technique Sparse and dense matrices require fundamentally different algorithmic and implementational treatment. 151

154 The Standard Model Problem For sufficiently smooth right-hand side f : Ω R find a function u C 2 (Ω) C 0 ( Ω) such that u = f in Ω u = 0 on Ω with Ω = (0, 1) 2 R 2 the unit square. 152

155 Finite-Difference Approach 1 Basic Idea: n discretise problem domain with a (regular) grid replace differential operator by difference operator h find a grid-function u h that solves the modified problem n h u h = f h at all inner in grid points u h = 0 at boundary points 153

156 Finite-Difference Approach 2 We discretise the Laplacian with a 5-point-stencil at all inner grid points 6i, j 1 6 h x 7 6 i 1, j h y i + 1, j 6i, j + 1 ( u) i,j u i+1,j 2u i,j + u i 1,j h 2 x + u i,j+1 2u i,j + u i,j 1 h 2 y 154

157 Noteworthy In the example we obtain one equation per grid point and unknown we associate the unknown with the equation There is only a local coupling, i.e. the equation for u ij only involves its direct neighbours can be described by a stencil operator The number of neighbours is independent of the resolution of the grid 155

158 Resulting Linear System I If we use a lexicographic ordering of unknowns we get the following matrix vector equation h u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 u 9 = f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 156

159 Resulting Linear System II We could also use another ordering, e. g. a red-black ordering h u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 u 9 = f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 157

160 Resulting Linear System III sparsity ratio: s r = # non-zero entries # entries 5(n2 ) (n 2 ) 2 = 5 n 2 (2D) 7(n 3 ) (n 3 ) 2 = 7 n 3 (3D) sparsity patterns: n = 10 n = 100 n = 1000 s r = 18.4% s r = 4.6% s r = 0.046% 158

161 Stencil Notation I 1/h^2 For h x = h y = h we have 1/h^2 4/h^2 1/h^2 1/h^2 ( u) i,j 1 h 2 (u i+1,j + u i 1,j 4u i,j + u i,j+1 + u i,j 1 ) which we can symbolically express by 1 h the stencil notation relies on the locality of the differential/difference operator 159

162 Stencil Notation II Let S i,j denote a stencil for the grid point (i, j) given by its weights s l,m with k 1 l k 2, p 1 m p 2. The application of S ij on the (grid-)function u h then can formally be defined by S i,j u = s l,m u i l,j m k 1 l k 2 p 1 m p 2 The extension to lower and higher dimensions works in the same fashion. 160

163 Stencil Notation III Thus, the stencil s 2, 1 s 1, 1 s 0, 1 s 1, 1 s 2,0 s 1,0 s 0,0 s 1,0 s 2,1 s 1,1 s 0,1 s 1,1 := translates to S i,j u = u i 2,j 1 + 2u i 1,j 1 + 2u i,j 1 + u i+1,j 1 2u i 2,j 6u i 1,j 10u i,j + 2u i+1,j u i 2,j+1 + 2u i 1,j+1 + 2u i,j+1 + u i+1,j+1 161

164 Finite Element Approach I Motivation: Alternative: Philosophy: For realistic problems a classical = strong solution will often not exist example: u C 2 (Ω) C 0 ( Ω) Convert the problem into a weak (variational) formulation The physical model = PDE itself was derived from variational concepts (e.g. virtual work in mechanics) 162

165 Finite Element Approach II Finite Element approaches typically involve some weird ;-) spaces. For our model problem we need: L 2 (Ω) := H 1 (Ω) := H 1 0(Ω) := { u : Ω R ( Ω u 2 dx) 1/2 < { } u L 2 (Ω), x u L 2 (Ω) and y u L 2 (Ω) { u H 1 (Ω) } u = 0 on Ω } 163

166 Weak Formulation 1 Choosing a test function v H 1 Ω and integrating over Ω yields u = f v u dx = Ω v u dx Ω v u dx = Ω Ω Ω Ω v f dx v u dx = v f dx Ω v f dx 164

167 Weak Formulation 2 The final weak formulation now reads: Ω Find u H0(Ω) 1 such that v u dx = v f dx for all v H 1 (Ω) Ω Remarks: This problem is solvable for sufficiently smooth f (f H 1 (Ω)) Ritz-Galerkin approach: solution u and test function v from same space 165

168 FEM Discretisation I H 1 0(Ω) is an infinite dimensional space not well suited for numerical treatment on the computer Next step: Determine finite dimensional sub-space V H 1 (Ω) and V 0 H 1 0(Ω) and solve the discrete problem Find u h V 0 (Ω) such that for all v h V v h u h dx = Ω Ω v h f dx 166

169 FEM Discretisation II Let φ 1,..., φ n V be a basis of V then u h = n k=1 u k φ k and for all v h V can be replaced by testing for φ 1,..., φ n. Thus, we get n equations for i = 1,..., n φ i u h dx = Ω Ω φ i f dx n ( k=1 Ω ) φ i φ k dx u k = Ω φ i f dx 167

170 FEM Discretisation II Let φ 1,..., φ n V be a basis of V then u h = n k=1 u k φ k and for all v h V can be replaced by testing for φ 1,..., φ n. Thus, we get n equations for i = 1,..., n Ω n ( φ i u h dx = ) φ i φ k dx k=1 } Ω {{ } =:a i,k i-th line of a linear system: Ω φ i f dx u k = φ i f dx } Ω {{ } =:b i n a i,k u k = b i k=1 167

171 FEM Discretisation III The resulting linear system can be written as a(φ 1, φ 1 ) a(φ 1, φ n ) u u a(φ n, φ 1 ) a(φ n, φ n ) u n = (φ 1, f) (φ 2, f). (φ 2, f) with bi-linear form a(φ i, φ k ) = linear form (φ i, f) = Ω Ω φ i φ k dx φ i f dx 168

172 How to Choose the Basis? For computational efficiency we want φ k to have compact support a(φ i, φ k ) = 0 for most pairs (i, k) sparse matrix typically: discretisation of domain by 2D: triangles, rectangles 3D: tetrahedra, hexahedra basis function chosen such that: φ k = { 1 at node k 0 otherwise (e.g. linear hat functions) 169

173 FEM for Model Problem quadratic elements, bi-linear ansatz functions: triangular elements, linear ansatz functions:

174 Excursion: Differences between FDM and FEM The FDM approximation only lives on the nodes of the grid approximation is a grid-function The FEM approximation is an element of a function space and thus lives on the complete domain Ω allows for sophisticated error estimates error bounds for results, adaptivity,... FEM can easily be extended to non-uniform/irregular grids one major reason for its popularity 171

175 Matrix/Vector vs. Operator/(Grid)Function 1 We can represent a linear system in matrix/vector format provides formalisms/techniques of linear algebra (e.g. to determine properties of the linear system like symmetry, solvability,... ) application-independent view: solver libraries can offer single type of interface requires a mapping unknown/node vector index looses some information (like e.g. neighbourhood) 172

176 Matrix/Vector vs. Operator/(Grid)Function 2 Let m denote the mapping unknown/node vector index (grid)function discrete operator m m vector matrix the i-th matrix row corresponds to the stencil for node m 1 (i) A i,1:n = 1 h2(..., 1,..., 1, 4, 1,..., 1,...) 1 1 h = S m 1 (i) 1 173

177 Matrix/Vector vs. Operator/(Grid)Function 3 The matrix-vector-product Au corresponds to 174

178 Matrix/Vector vs. Operator/(Grid)Function 3 The matrix-vector-product Au corresponds to for all node indices k do apply stencil S k to gridfunction u h at node k end for This duality allows us to implement (most) algorithms in either a matrix- or a grid-based fashion. 174

179 Linear Iterative Schemes Let u (k) be an approximate solution to Au = f then we have u = u (k) + e (k) = u (k) + A 1 r (k) Idea: Find an approximation B of A that is close to A in some sense and easy to invert and set u (k+1) = u (k) + B 1 r (k) = u (k) + B 1 ( f Au (k)) = ( I B 1 A ) u (k) + B 1 f = Su (k) + B 1 f S is called the iteration matrix of the scheme 175

180 Two very basic schemes Richardson iteration we choose some ω R and set u (k+1) = u (k) + ω r (k) S = I ωa Jacobi iteration we set B = diag (A) and get u (k+1) = u (k) + diag (A) 1 r (k) S = I diag (A) 1 A 176

181 Considering Jacobi s update rule Algorithmic View of Jacobi u (k+1) = u (k) + diag (A) 1 r (k) separately for each equation we get u (k+1) i = u (k) i + 1 a ii f i n j=1 a ij u (k) j a ii u (k+1) i = f i n j=1,j i a ij u (k) j we locally fulfil the i-th equation 177

182 Jacobi for Model Problem n Consider the Finite-Difference Discretisation of the Model Problem in 2D h n for i = 1 to n 1 do for j = 1 to n 1 do r = f i,j 1 ( ) h 2 4u (k) i,j u(k) i 1,j u(k) i+1,j u(k) i,j 1 u(k) i,j+1 u (k+1) i,j end for end for = u (k) i,j + h2 4 r 178

183 Jacobi for Model Problem n Consider the Finite-Difference Discretisation of the Model Problem in 2D h n for i = 1 to n 1 do for j = 1 to n 1 do r = f i,j 1 ( ) h 2 4u (k) i,j u(k) i 1,j u(k) i+1,j u(k) i,j 1 u(k) i,j+1 u (k+1) i,j end for end for = u (k) i,j + h2 4 r can we improve the implementation? 178

184 Jacobi for Model Problem n h n Consider the Finite-Difference Discretisation of the Model Problem in 2D for i = 1 to n 1 do for j = 1 to ( n 1 do u (k+1) i,j = end for end for h 2 f i,j + u (k) i 1,j + u(k) i+1,j + u(k) i,j 1 + u(k) i,j+1 ) /4 less flops per update 179

185 Jacobi iteration: From Jacobi to Gauß-Seidel & Co. u (k+1) i = u (k) i + 1 a ii f i n j=1 a ij u (k) j how can the algorithm be improved? 180

186 Jacobi iteration: From Jacobi to Gauß-Seidel & Co. u (k+1) i = u (k) i + 1 a ii f i n j=1 a ij u (k) j how can the algorithm be improved? Gauß-Seidel iteration: u (k+1) i = u (k) i + 1 a ii f i n j<i a ij u (k+1) j n j i a ij u (k) j 180

187 Jacobi iteration: From Jacobi to Gauß-Seidel & Co. u (k+1) i = u (k) i + 1 a ii f i n j=1 a ij u (k) j how can the algorithm be improved? Gauß-Seidel iteration: u (k+1) i = u (k) i + 1 a ii f i n j<i a ij u (k+1) j n j i a ij u (k) j Successive Over-relaxation: u (k+1) i = u (k) i + ω a ii f i n j<i a ij u (k+1) j n j i a ij u (k) j 180

188 Demonstration We consider the 2D Laplace Problem on a regular grid with boundary conditions T 1 = 9 and T 0 = 0 T 0 T 0 T 0 T 0 T 0???????????????????? T 0????? T 0 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 T 1 initial guess 181

189 Sample References Mitchell, Griffiths: The Finite Difference Method in Partial Differential Equations, John Wiley & Sons Jung, Langer: Methode der finiten Elemente für Ingenieure, Teubner Saad: Iterative Methods for Sparse Linear Systems, Society for Industrial and Applied Mathematics Barrett, Berry, Chan et al., Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, SIAM, 1994 (www.netlib.org) 182

190 Teil #9 Distributed Memory Parallelism & Grid Partitioning 183

191 Distributed Memory Parallelisation Depending on the implementation approach (matrix-based vs. grid-based) the typical parallelisation approach for a distributed memory setting involves: Splitting up the matrix into sub-matrices the (discretised) problem domain, i.e. the grid for separate storage on individual processors we only consider grid partitioning 184

192 Grid Partitioning Example Computational grid of the Matterhorn 185

193 Grid Partitioning Grid partitioning (sometimes also called domain decomposition) denotes splitting the problem domain into sub-domains Wish List: operations at grid-points can be performed in arbitrary order basic requirement operations at grid-points require only information from neighbouring grid points locality amount of operations per grid-point should be independent of point load balancing sub-domains should be equal sized load balancing sub-domain interfaces should be short amount of data to exchange 186

194 B B B B C C C C B B B B C C A A A A A A & & & & ' ' ' ' & & & & ' ' ' ' Cross-interface dependencies? > > > > > > > >???????? < < < < < < < < = = = = = = = = : : : : : : : : ; ; ; ; ; ; ; ; " " " " " " " " # # # # # # # # / / / / / / / / $ $ $ $ $ $ $ $ % % % % % % % %!!!!!!!! ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) * * * * * * * * ,,,,,,,, Evaluation of stencils (though local!) may involve unknowns/nodes on more than one sub-domain! 187

195 Ghost Nodes Problem: Application of stencil S at node i in sub-domain Ω k may require value of node j sub-domain Ω m Concept: Add to Ω k a layer of ghost nodes at which read-only copy of such values are stored inner points ghost nodes 188

196 Ghost Nodes II values at ghost nodes must be kept up-to-date updating individual ghost nodes is too costly operations on a sub-domain must be organised such that update of ghost nodes can be performed in chunks as large as possible reduction of number of messages increase of messages size 189

197 Update Example Assume we have a 9-point-stencil for A residual computation can be performed without update 190

198 Update Example Assume we have a 9-point-stencil for A residual computation can be performed without update Jacobi iteration can be performed without update 190

199 Update Example Assume we have a 9-point-stencil for A residual computation can be performed without update Jacobi iteration can be performed without update what about Gauß-Seidel? 190

200 Update Example Assume we have a 9-point-stencil for A residual computation can be performed without update Jacobi iteration can be performed without update what about Gauß-Seidel? lexicographic ordering is not a good idea! 190

201 Update Scheme for Red-Black GS/SOR Assume we have a 5-point-stencil for A update of red points requires only black ghost nodes update of black points requires only red ghost nodes Resulting scheme: update red nodes update red ghost nodes with neighbours update black nodes update black ghost nodes with neighbours requires two messages of half size per iteration 191

202 Alternative Approach If we neglect the read-only property of ghost nodes we can get away with one message of double size: update red nodes (interior + ghost node layer #1) update black nodes (interior only) update ghost nodes (layers 1 + 2) sub-domain with two layers of ghost nodes 192

203 Avoiding Diagonal Updates a 9-point stencil for A or restriction Rh 2h in multigrid requires also corner ghost nodes A B C B C D A B C B C D A B C B C D before update east-west update north-south update 193

204 & ' & ' & ' & ' & ' & ' & ' & ' Two Variants of Grid Partitioning /./././././././,-,-,-,-,-,-,-, * + * + * + * + * + * + * + * $ % $ % $ % $ % $ % $ % $ % $ % "# "# "# "# "# "# "# "#!!!!!!!! () () () () () () () () node oriented decomposition element oriented decomposition 194

205 Element Oriented Decomposition,-,-,-,-,-,-,-,- * + * + * + * + * + * + * + * + () () () () () () () () () () () ()!!!!!!!! "# "# "# "# "# "# "# "# &' &' &' &' &' &' &' &' &' &' &' &' each element is assigned to a single sub-domain $ % $ % $ % $ % $ % $ % $ % $ % nodes of the grid may belong to multiple sub-domains././././././././ how to store node-based values at interface nodes? 195

206 Overlapping Storage,-,-,-,-,-,-,-,-!!!!!!!! * + * + * + * + * + * + * + * + "# "# "# "# "# "# "# "# () () () () () () () () () () () () One idea is to use overlapping storage: $ % $ % $ % $ % $ % $ % $ % $ % &' &' &' &' &' &' &' &' &' &' &' &' each process stores the values for all nodes of its subdomains././././././././ values may be stored multiple times at interfaces 196

207 Overlapping Storage formally Let v denote the global vector of node values v k denote the local vector of node values stored by process k we have the formal relationship v k = M k v with a boolean matrix M k 197

208 Additive Storage,-,-,-,-,-,-,-,-!!!!!!!! * + * + * + * + * + * + * + * + "# "# "# "# "# "# "# "# () () () () () () () () () () () () &' &' &' &' &' &' &' &' &' &' &' &' With additive storage, each process stores for each interface node a part of its value. $ % $ % $ % $ % $ % $ % $ % $ % Summing up the contribution of all processes gives the actual node value././././././././ v = n p k=1 M T k v k 198

209 Conversion of Storage Formats Additive Overlapping This type of conversion requires communication, since the global values of all (interface) nodes must be determined Overlapping Additive This type of conversion can be performed without communication 199

210 @ A B C B C B C B C B C B C B C B C D E D E D E D E D E D E D E D E F G F G F G F G X Y X Y X Y X Y H I H I H I H I F G F G F G F G X Y X Y X Y X Y V W V W V W V W H I H I H I H I V W V W V W V W J K J K J K J K P Q P Q P Q P Q J K J K J K J K P Q P Q P Q P Q N O N O N O N O R S R S R S R S N O N O N O N O R S R S R S R S & ' & ' & ' & ' & ' & ' & ' & ' Additive & Overlapping Operators././././././././,-,-,-,-,-,-,-,- * + * + * + * + * + * + * + * + * + * + * + * + < = < = < = < = < = < = < = < = >? >? >? >? >? >? >? >? :; :; :; :; :; :; :; :; " #" #" " #" #" " #" #" " "# #"!!!!!!!! $ % $ % $ % $ % $ % $ % $ % $ % () () () () () () () () () () () () LM LM LM LM LM LM LM LM LM LM LM LM TU TU TU TU TU TU TU TU TU TU TU TU operators can also be stored either in additive or overlapping fashion ( stencils at nodes) 200

211 Application of Operators I Consider computation of residual: r = f A u,-,-,-,-,-,-,-,-!!!!!!!! * + * + * + * + * + * + * + * + "# "# "# "# "# "# "# "# $ % $ % $ % $ % $ % $ % $ % $ % () () () () () () () () () () () () &' &' &' &' &' &' &' &' &' &' &' &' r = = + N (f k A(k, :) u) k=1 internal 1 k=1 internal 2 (f k A(k, :) u) (f k A(k, :) u)././././././././ k=1 interface (f k A(k, :) u) k=1 201

212 Application of Operators II operator values result communication additive overlapping additive none overlapping overlapping overlapping none overlapping additive additive none additive additive approach relies on the linearity of operators there are some technical restrictions on the application of overlapping operators 202

213 Grid Partitioning Practically? In practice finind a good partitioning is a demanding task (optimal solution is np-hard only heuristics) most practical approaches rely on nested dissection type algorithms in combination with grid coarsening algorithms are typically graph-based strong relation to fill-reducing re-orderings for linear systems example (free) software: Metis 203

214 Example: Grenoble Basin Overview 204

215 Example: Grenoble Basin Grid 205

216 Example: Grenoble Basin Details 206

217 Sample References Haase, Parallelisierung numerischer Algorithmen für partielle Differentialgleichungen, Teubner, 1999 Hülsemann, Kowarschik, Mohr, Rüde, Parallel Geometric Multigrid, in: Bruaset, Tveito, Numerical Solution of Partial Differential Equations on Parallel Computers, Springer,

218 Teil #10 The Message Passing Interface Standard (MPI) explicit message passing, MPI basics, communication modes, derived data types 208

219 MPI Overview 1 Distributed memory parallelism requires treatment of crossprocess dependencies, arising e.g. from grid partitioning approaches for PDEs, via data exchange One possibility to do this is explicit message passing What MPI is: The Message Passing Interface is a standard for explicit message passing What MPI is not: an actual implementation of the standard, i.e. no program/library 209

220 MPI Overview 2 The MPI standard was compiled by the MPI forum consisting of computer vendors and researchers from academia and industry Motivation in designing was to allow standardised and portable parallel programming Currently there are three versions: Version 1.0 (1994), initial version Version 1.1 (1995), corrections & clarifications Version 2.0 (1997), major additions 210

221 MPI Overview 3 The standards primarily define a set of MPI library functions, MPI data types and MPI constants MPI bindings exists for the following languages: Fortran family (77 upwards) C C++ 211

222 Key Parts of the MPI 1.0 Standard Point-to-Point Communication Collective Communication Groups, Contexts and Communicators Process Topologies Environmental Management Profiling Interface 212

223 Example free implementations: MPI Implementations MPICH2 Open MPI Authored by Argonne National Laboratory Group / Mississippi State Group, U.S.A. Started out as references implementation, i.e. code developed parallel to standard one of their top-level goals is to Create a free, open source, peer-reviewed, production-quality complete MPI-2 implementation Open MPI project has many members and contributors from academia and industry Example commercial implementations: Part of SGI s Message Passing Toolkit (MPT) Intel MPI Library 213

224 Availability on Target Systems Tethys HLRB-II MPICH2 Open MPI SGI MPT Intel MPI Library It may be necessary to further subdivided MPI versions by associated compilers, e.g. on Tethys we have: mpirun.mpich compiled with and using the GNU compiler suite mpirun.mpich-intel compiled with and using the Intel compiler suite 214

225 Minimal Set of MPI Commands MPI offers a versatile and extensive set of about 150 library functions (v 1.0). A simple parallel program can be written with just the following: MPI Init MPI Comm size MPI Comm rank MPI Send MPI Recv MPI Finalize function for initialising parallel communication number of processes in communicator (e.g. in MPI COMM WORLD) identifier/number of process within communicator basic function for sending data basic function for receiving data function for shutting down parallel communication 215

226 Example MPI Program #include <stdio.h> #include "mpi.h" int main ( int argc, char ** argv ) { int myid; /* process identifier */ int nprocs; /* number of processes */ int source; /* identifier sender */ int dest; /* identifier receiver */ int tag; /* message tag */ MPI_Status status; /* return status of MPI_Recv */ int namelength; /* length of processor name */ /* memory for messages and processor names */ char message[30+mpi_max_processor_name]; char processor_name[mpi_max_processor_name]; /* initialise MPI */ MPI_Init( &argc, &argv ); /* who am I? */ MPI_Comm_rank( MPI_COMM_WORLD, &myid ); /* how many processes are we? */ MPI_Comm_size( MPI_COMM_WORLD, &nprocs ); /* where do I run? */ MPI_Get_processor_name( processor_name, &namelength ); } /* if not process 0, then send greetings */ if ( myid!= 0 ) { sprintf( message, "Greeting from process %d on %s!", myid, processor_name ); dest = 0; tag = myid; MPI_Send( message, strlen(message)+1, MPI_CHAR, dest, tag, MPI_COMM_WORLD ); } /* receive greeting and print messages to screen */ else { printf( "Process 0 runs on %s\n", processor_name ); for ( source = 1; source < nprocs; source++ ) { MPI_Recv( message, MPI_MAX_PROCESSOR_NAME + 30, MPI_CHAR, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status ); printf( "%s\n", message ); } } /* terminate all MPI stuff */ MPI_Finalize(); return 1; 216

227 Output of Program Mode of start-up and some output details depend on implementation: ==> mpirun -np 4 -nolocal a.out Process 0 runs on A01.cluster.geophysik.uni-muenchen.de Greeting from process 2 on A03.cluster.geophysik.uni-muenchen.de! Greeting from process 1 on A02.cluster.geophysik.uni-muenchen.de! Greeting from process 3 on A04.cluster.geophysik.uni-muenchen.de! ==> mpiexec.openmpi -np 4 -host a01,a02,a03,a04 a.out Process 0 runs on A01 Greeting from process 1 on A02! Greeting from process 2 on A03! Greeting from process 3 on A04! Note the ordering of messages! race condition 217

228 A Closer Look At MPI Send int MPI_Send( void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm ) buf count datatype dest tag comm message buffer containing the data to be send number of data items to be send type of data to be send rank of process to receive data message identifier a communicator Tag, communicator and the ranks of sender and receiver form the envelope of the message. 218

229 A Closer Look At MPI Recv int MPI_Recv( void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPIStatus *status ) buf count datatype src tag comm status message buffer containing the data to be send number of data items to be send type of data to be send rank of process sending data message identifier a communicator a construct for returning status information 219

230 Wildcards in Communication The receive call in our example MPI_Recv( message, MPI_MAX_PROCESSOR_NAME + 30, MPI_CHAR, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status ); makes use of the wildcards MPI ANY SOURCE rank of sender = MPI ANY TAG message tag = that s where MPI Status comes into play 220

231 A Closer Look At MPI Status In C: MPI Status is a struct consisting of the three fields MPI SOURCE, MPI TAG, and MPI ERROR In FORTRAN77: MPI Status is an array of integers and MPI Status(MPI SOURCE), etc. contains the respective information Contains as hidden information the number of data items received: MPI_GET_COUNT( status, datatype, count ) 221

232 MPI Data Types for FORTRAN77 Datatype Fortran equivalent MPI INTEGER integer MPI REAL real MPI DOUBLE PRECISION double precision MPI COMPLEX complex MPI LOGICAL logical MPI CHARACTER character(1) MPI BYTE MPI PACKED There may be additional types, e.g. MPI DOUBLE COMPLEX, if the underlying compiler supports their equivalent MPI BYTE is just that, an 8-bit data item MPI PACKED is one possibility for grouping data for communication 222

233 Modes of Point-to-Point Communication There are two modes of communication in MPI differing in when the respective MPI function call returns: Blocking send The MPI function call returns once the data and envelope are safely stored away and the send buffer can be safely re-used Non-blocking send Sending (and receiving) is split into two function calls. The first call intialises the send operation and immediately returns. A second (later) call completes the send operation and assures that the buffer can be re-used. 223

234 Buffered Modes of Point-to-Point Communication 2 If no matching receive has already been posted, contents of send buffer a copied to local user supplied buffer ( MPI Buffer attach). Synchronous Ready Function does not return before a matching receive operation has been posted. Send may only be posted after a matching receive operation was posted. Standard MPI decides whether to buffer outgoing message. If not, operation will only complete after matching receive was posted. 224

235 Modes of Point-to-Point Communication 2 Buffered local If no matching receive has already been posted, contents of send buffer a copied to local user supplied buffer ( MPI Buffer attach). Synchronous non-local Function does not return before a matching receive operation has been posted. Ready a priori info Send may only be posted after a matching receive operation was posted. Standard non-local MPI decides whether to buffer outgoing message. If not, operation will only complete after matching receive was posted. 224

236 Modes of Point-to-Point Communication 3 non-blocking functions get an I = immediate pre-fix other modes distinguished by R, S, B blocking non-blocking mode MPI Send MPI Isend standard MPI Bsend MPI Ibsend buffered MPI Ssend MPI Issend synchronous MPI Rsend MPI Irsend ready 225

237 Overlapping Communication and Computation Problem: communication is costly and reduces parallel efficiency Idea: try to perform computations while communication sub-system exchanges data MPI: the non-blocking communication modes are intended for this purpose 226

238 Example of Overlapping Comm. & Comp. Consider residual computation / Jacobi step on a sub-domain 1. first treat all nodes along the subdomain boundary 2. then initiate exchange of these values with neighbours to update ghost nodes 3. in parallel with (2) start updating nodes in the interior 227

239 Details of non-blocking Communication Sender initiates send operation with MPI Isend() Function returns immediately depending on sub-mode (standard, blocking, ready, synchronous) Process obtains an MPI Request handle to identify comm. op. Not safe to write to send buffer yet Receiver initiates receive operation with MPI Irecv() Both can check for completion of operation with MPI Wait returns once comm. op. is complete MPI Test reports on status of comm. op. 228

240 How to send my values? MPI Send() expects a contiguous message buffer (4,1) (4,2) (4,3) (4,4) (1,1) (1,2) (1,3) (1,4) (3,1) (3,2) (3,3) (3,4) (2,1) (2,2) (2,3) (2,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (1,1) (1,2) (1,3) (1,4) grid (4,1) (4,2) (4,3) (4,4) (possible) memory layout 229

241 How to send my values? Sending values at northern border (4,1) (4,2) (4,3) (4,4) (1,1) (1,2) (1,3) (1,4) (3,1) (3,2) (3,3) (3,4) (2,1) (2,2) (2,3) (2,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (1,1) (1,2) (1,3) (1,4) grid (4,1) (4,2) (4,3) (4,4) (possible) memory layout 230

242 How to send my values? Sending values at western border!!! (4,1) (4,2) (4,3) (4,4) (1,1) (1,2) (1,3) (1,4) (3,1) (3,2) (3,3) (3,4) (2,1) (2,2) (2,3) (2,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (1,1) (1,2) (1,3) (1,4) grid (4,1) (4,2) (4,3) (4,4) (possible) memory layout 231

243 Possibility 1: Ways Out Manually copy non-contiguous data to contiguous send buffer Possibility 2: Make use of MPI Pack / MPI Unpack seldom used Possibility 3: Generate a new user defined MPI data type 232

244 Possibility 1: Ways Out Manually copy non-contiguous data to contiguous send buffer Possibility 2: Make use of MPI Pack / MPI Unpack seldom used Possibility 3: Generate a new user defined MPI data type Other uses too, like e.g. sending C structs 232

245 Derived Data Types MPI Type contiguous() MPI Type vector() MPI Type indexed() MPI Type struct() combines N memory-contiguous elements of existing type into new one combines N contiguous blocks of elements with constant stride into new one combines N contigous blocks of elements with variable stride into new one combines elements of different type and constant but arbitrary displacements in memory 233

246 Back To Example We make use of MPI Type vector for sending the eastern and western boundary: MPI_Type_vector( int count, int blocklength, int stride, MPI_Datatype elemtype, MPI_Datatype newtype ); In the code we employ MPI_Datatype vertface;... MPI_Type_vector( 4, 1, 4, MPI_DOUBLE, &vertface ); MPI_Type_commit( &vertface );... MPI_Send( memloc, 1, vertface, dest, tag, MPI_COMM_WORLD ); 234

247 Collective Communication Definition: While point-to-point communication occurs between two endpoints (processes) collective communication involves all the processes in a communicator. Example: Assume e.g. that only one process has IO-capability and can access a parameter file, then it may read in and send parameters to all remaining processes. broadcast 235

248 Example: Residual Norm Consider residual-based stopping rule r 2 < ɛ. We have r 2 2 = N k=1 r 2 k = k I A r 2 k + k I B r 2 k + k I C r 2 k + k I D r 2 k A B sub-sums can be computed separately by each process C D how to obtain global sum? 236

249 Master Slave Approach pa Σ A 1. slaves send sub-sums to master gather operation Σ B Σ C Σ D pb pc pd 237

250 Master Slave Approach pa 1. slaves send sub-sums to master gather operation 2. master computes norm and checks stopping criterion pb pc pd 237

251 Master Slave Approach pa 1. slaves send sub-sums to master gather operation 2. master computes norm and checks stopping criterion pb pc pd 3. master broadcasts command to slaves 237

252 Master Slave Approach pa 1. slaves send sub-sums to master gather operation 2. master computes norm and checks stopping criterion pb pc pd 3. master broadcasts command to slaves 237

253 Alternative Implementations of Gather pa Σ A 2 Σ B Σ C Σ D 1 1 pb pc pd pa pb pc pd MPI standard makes leaves details of implementation open flexibility for N = 2 k procs both approaches require (N-1) messages right approach avoids congestion of network 238

254 Types of Collective Comm. A 0 broadcast A 0 A 0 A 0 A 0 A 0 A 0 A 1 A 2 A 3 A 4 scatter gather A 0 A 1 A 2 A 3 A 4 239

255 Types of Collective Comm. II A 0 B 0 C 0 D 0 E 0 allgather A 0 B 0 C 0 D 0 E 0 A 0 B 0 C 0 D 0 E 0 A 0 B 0 C 0 D 0 E 0 A 0 B 0 C 0 D 0 E 0 A 0 B 0 C 0 D 0 E 0 A 0 A 1 A 2 A 3 A 4 B 0 B 1 B 2 B 3 B 4 C 0 C 1 C 2 C 3 C 4 D 0 D 1 D 2 D 3 D 4 E 0 E 1 E 2 E 3 E 4 alltoall A 0 B 0 C 0 D 0 E 0 A 1 B 1 C 1 D 1 E 1 A 2 B 2 C 2 D 2 E 2 A 3 B 3 C 3 D 3 E 3 A 4 B 4 C 4 D 4 E 4 240

256 Definition: Reduce Operations A reduce operation does no simply transmit data, but instead collects data from all processes in the group and performs a reduction with a binary operator on the data. In our example: r 2 2 = N k=1 r 2 k = k I A r 2 k k I B r 2 k k I C r 2 k k I D r 2 k we can perform a binary reduction with = + on the sub-sums 241

257 Standard Reduction Operators in MPI operator MAX MIN SUM PROD LAND BAND LOR LXOR BXOR MAXLOC MINLOC meaning Maximum Minimum Sum Product Logical And Bitwise And Logical Or Logical Exclusive Or Bitwise Exclusive Or Maximum and Location of Maximum Minimum and Location of Minimum 242

258 Reduce Ops in MPI int MPI_Reduce( void *operand, void *result, int count, MPI_Datatype type, MPI_Op op, int root, MPI_Comm, comm ); operand result count type op root comm buffer with operands for binary operation buffer for results of binary operation number of operands in buffer datatype of operands type of binary operator rank of process to obtain result(s) communicator 243

259 Reduce Ops in MPI (cont.) MPI Allreduce all processes receive result of reduce operation democratic version of stopping test MPI ReduceScatter MPI Scan the result vector of the reduce operation is broken into N parts which are scattered to all N processes. can be used to perform a prefix reduction ; MPI Scan returns on process i the reduction of data on processes 0,...,i (inclusive) 244

260 Another Collective Method MPI_Barrier( MPI_Communicator comm ); Program execution on each process is halted until all processes in comm have called MPI Barrier explicit synchronisation 245

261 Frequency of Use of MPI Routines A study at the High-Performance Computing Center (HLRS) in Stuttgart (Rabenseifner 99) profiled MPI jobs of their users: machine: CRAY T3E no. of users: 68 no. of jobs: 10,289 CPU time: 425,288 hours MPI routines used: 92 time interval: 7/98 1/99 Fortran jobs: no. 47%, time 80% C/C++ jobs: no. 53%, time 20% 246

262 Frequency of Use of MPI Routines MPI routines group called in % weighted by of all jobs CPU time blocking point-to-point non-blocking point-to-point persistent point-to-point pack and unpack collective communication derived datatypes group and sub-communicator inter-communicator attribute caching / inquiry error handler inquiry topology creation wtime measurement

263 Parallel IO Functionality: Additional Features of MPI-2 MPI-1 did not consider parallel IO ) separate files or explicit data transfer); MPI-2 offers an API to use modern parallel file systems Dynamic Process Management: MPI-1 assumed a fixed number of running processes; MPI-2 offers dynamic process startup (spawning) and communication with processes started separately (connecting) 248

264 Additional Features of MPI-2 Remote Memory Operations: Also called one-sided or remote memory communication introduce aspects of shared memory models. A process may open a window in memory to be accessed by other processes via non-blocking put, get or accumulate operations. Other Features: C++ and Fortran90 bindings Mixed language programming Thread related topics 249

265 Startup of MPI Processes until MPI-2 start-up of jobs was not regulated MPI-2 provides and optional but standardised start-up procedure via the command mpiexec 250

266 Literature Gropp, Lusk and Skjellum, Using MPI: Portable Parallel Programming with the Mesage-Passing Interface, MIT Press, 1999 MPI standards by the MPI Forum Pacheco, A User s Guide to MPI, 1998 Rabenseifner, Automatic MPI Counter Profiling of All Users: First Results on a CRAY T3E ,

267 Teil #11 Shared Memory Parallelisation with OpenMP 252

268 OpenMP Overview OpenMP stands for Open specifications for Multi Processing First version developed in 1997 (current version is 2.5) Effort performed by hardware vendors and compiler developers to standardise and increase portability of shared memory parallalisation considered an industry standard Covers languages: Fortran, C/C++ OpenMP consists of compiler directives (pragmas), a small set of library routines and environment variables 253

269 OpenMP Overview 2 OpenMP offers a model for explicit parallelisation (not automatic like e.g. Compas on HLRB-I) OpenMP is a thread based approach based on the forkjoin model master thread FORK JOIN FORK JOIN parallel region parallel region 254

270 Why Pragmas? one design goal of OpenMP was simplicity, since explicit message passing was considered too complicated/timeconsuming for the programmer pragmas allow an easy crossover from sequential to parallel code (sequential) program remains compilable with non OpenMP-compilers 255

271 Basic Syntax of OpenMP Pragmas C/C++: #pragma omp construct [clause[clause]... ] Fortran: C$OMP construct [clause[clause]... ] *$OMP construct [clause[clause]... ]!$OMP construct [clause[clause]... ] free form format!$ for conditional compilation 256

272 Very Basic Example #include <omp.h> int main ( void ) { printf( "================\n" ); #pragma omp parallel { printf( " Hello World!\n" ); } } printf( "================\n" ); return 0; compilation with icc -openmp HelloWorld.c and simple execution yields ==>./a.out ================ Hello World! Hello World! ================ 257

273 Very Basic Example (cont.) number of threads executing parallel region can be steered by setting an environment variable ==> setenv OMP_NUM_THREADS 5 ==>./a.out ================ Hello World! Hello World! Hello World! Hello World! Hello World! ================ 258

274 #include <omp.h> int main ( void ) { Very Basic Example (cont.) int id, bn; #pragma omp parallel { id = omp_get_thread_num(); bn = omp_get_num_threads(); printf( " This is thread " "%d out of %d\n", id, bn ); } ==> setenv OMP_NUM_THREADS 5 ==>./a.out This is thread 0 out of 5 This is thread 4 out of 5 This is thread 3 out of 5 This is thread 2 out of 5 This is thread 1 out of 5 } return 0; 259

275 Categories of OpenMP Constructs 1. parallel regions 2. work sharing 3. data environment 4. synchronisation 5. runtime functions and environment variables 260

276 Parallel Regions We have already seen these: #pragma omp parallel {... } code within parallel region is executed by all threads master thread is always #0 end of region implies a barrier, only master continues what happens with other threads between regions? 261

277 Work Sharing FORK FORK FORK DO/FOR LOOP SINGLE JOIN JOIN JOIN Do/For directive Sections directive Single directive #pragma omp for #pragma omp sections #pragma omp single #pragma omp section 262

278 Data Environment 263

279 Synchronisation Like synchronisation of processes in MPI also synchronisation of threads is a topic in OpenMP. the critical directive can be used to define a critical region which can be entered only by one thread at a time one can generate explicit barriers by the pragma of the same name atomic defines a critical region that only contains one statement flush constructs a sequence point where a thread tries to create a consistent view of memory 264

280 Runtime Functions & Environment 265

281 Literature Hermanns, Parallel Programming in Fortran 95 using OpenMP, 2002 OpenMP Architecture Review Board, Official OpenMP Specification (v2.5), 2005 Lawrence Livermore National Lab, Tutorial: An Introduction to OpenMP 266

282 Teil #12 Basics of Profiling & Optimisation profiling tools, data layout optimisations, data access optimisations 267

283 Profiling Basics Profiling refers to the recording of summary information (timing data, statistics on function calls and hardware events,... ) during the execution of a code Task identify hot spots and bottlenecks in code execution and steer code optimisation 268

284 Profiling Techniques and Tools Three main approaches: Hardware Performance Counters Instrumentation of Code Simulation-Based Performance Analysis 269

285 Hardware Performance Counters processors offer special registers (hardware performance counters) for low-overhead performance measurements typical events: pipeline stalls, cache misses, floating-point ops,... tools/libaries exist for extracting this information: PCL: Performance Counter Library (no longer supported?) OProfile: a system-wide profiler for Linux systems, capable of profiling all running code at low overhead PAPI: Performance Application Programming Interface installation on TETHYS pending 270

286 Instrumentation of Code Instrumentation denotes the insertion of measurement code into the executable program typical examples is the insertion of calls to monitoring libraries for the generation of trace files instrumentation can be done in source-code, by compiler or during run-time typically induces a significant overhead 271

287 Example: gprof an easy to use tool that produces an execution profile of C, Pascal, or Fortran77 programs three-step usage: Compiling option -pg (GNU and Intel compiler suites) adds instrumentation to executable Normal program execution generates trace file (gmon.out) Information is extracted from trace file via gprof command 272

288 Example: Profile for TERRA Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name oprxuf_ jacobi_ oprxuc_ rotate_ cvtas_t_to_a nulvec_ coarseopr_ gprof can also generate call graphs, etc. 273

289 Simulation-Based Performance Analysis program is executed/interpreted within a software framework that simulates a certain hardware architecture high flexibility in changing hardware parameters controlled program execution also very valuable for code debugging high run-time penalties through interpreted execution example software: valgrind, cachegrind 274

290 Example: Callgraph of TERRA advance is the basic time-step driver axu3s driver for computing v = v Au oprxuf computes v = v Au (on fine grid) oprxuc computes v = v Au (on coarse grids) 275

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

Fluid-Particle Multiphase Flow Simulations for the Study of Sand Infiltration into Immobile Gravel-Beds

Fluid-Particle Multiphase Flow Simulations for the Study of Sand Infiltration into Immobile Gravel-Beds 3rd JUQUEEN Porting and Tuning Workshop Jülich, 2-4 February 2015 Fluid-Particle Multiphase Flow Simulations for the Study of Sand Infiltration into Immobile Gravel-Beds Tobias Schruff, Roy M. Frings,

Mehr

Eingebettete Taktübertragung auf Speicherbussen

Eingebettete Taktübertragung auf Speicherbussen Eingebettete Taktübertragung auf Speicherbussen Johannes Reichart Workshop Hochgeschwindigkeitsschnittstellen Stuttgart, 07.11.2008 Unterstützt durch: Qimonda AG, München Institut für Prof. Elektrische

Mehr

IDS Lizenzierung für IDS und HDR. Primärserver IDS Lizenz HDR Lizenz

IDS Lizenzierung für IDS und HDR. Primärserver IDS Lizenz HDR Lizenz IDS Lizenzierung für IDS und HDR Primärserver IDS Lizenz HDR Lizenz Workgroup V7.3x oder V9.x Required Not Available Primärserver Express V10.0 Workgroup V10.0 Enterprise V7.3x, V9.x or V10.0 IDS Lizenz

Mehr

Symbio system requirements. Version 5.1

Symbio system requirements. Version 5.1 Symbio system requirements Version 5.1 From: January 2016 2016 Ploetz + Zeller GmbH Symbio system requirements 2 Content 1 Symbio Web... 3 1.1 Overview... 3 1.1.1 Single server installation... 3 1.1.2

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Customer-specific software for autonomous driving and driver assistance (ADAS)

Customer-specific software for autonomous driving and driver assistance (ADAS) This press release is approved for publication. Press Release Chemnitz, February 6 th, 2014 Customer-specific software for autonomous driving and driver assistance (ADAS) With the new product line Baselabs

Mehr

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena http://www.im.uni-jena.de Contents I. Learning Objectives II. III. IV. Recap

Mehr

AS Path-Prepending in the Internet And Its Impact on Routing Decisions

AS Path-Prepending in the Internet And Its Impact on Routing Decisions (SEP) Its Impact on Routing Decisions Zhi Qi ytqz@mytum.de Advisor: Wolfgang Mühlbauer Lehrstuhl für Netzwerkarchitekturen Background Motivation BGP -> core routing protocol BGP relies on policy routing

Mehr

Efficient Design Space Exploration for Embedded Systems

Efficient Design Space Exploration for Embedded Systems Diss. ETH No. 16589 Efficient Design Space Exploration for Embedded Systems A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of Sciences presented by

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

GridMate The Grid Matlab Extension

GridMate The Grid Matlab Extension GridMate The Grid Matlab Extension Forschungszentrum Karlsruhe, Institute for Data Processing and Electronics T. Jejkal, R. Stotzka, M. Sutter, H. Gemmeke 1 What is the Motivation? Graphical development

Mehr

eurex rundschreiben 094/10

eurex rundschreiben 094/10 eurex rundschreiben 094/10 Datum: Frankfurt, 21. Mai 2010 Empfänger: Alle Handelsteilnehmer der Eurex Deutschland und Eurex Zürich sowie Vendoren Autorisiert von: Jürg Spillmann Weitere Informationen zur

Mehr

Geometrie und Bedeutung: Kap 5

Geometrie und Bedeutung: Kap 5 : Kap 5 21. November 2011 Übersicht Der Begriff des Vektors Ähnlichkeits Distanzfunktionen für Vektoren Skalarprodukt Eukidische Distanz im R n What are vectors I Domininic: Maryl: Dollar Po Euro Yen 6

Mehr

HIR Method & Tools for Fit Gap analysis

HIR Method & Tools for Fit Gap analysis HIR Method & Tools for Fit Gap analysis Checklist Example APS-functionality Check FELIOS versus PRIMAVERA 1 Base for all: The Processes HIR-Method for Template Checks, Fit Gap-Analysis, Change-, Quality-

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

JONATHAN JONA WISLER WHD.global

JONATHAN JONA WISLER WHD.global JONATHAN WISLER JONATHAN WISLER WHD.global CLOUD IS THE FUTURE By 2014, the personal cloud will replace the personal computer at the center of users' digital lives Gartner CLOUD TYPES SaaS IaaS PaaS

Mehr

Mitglied der Leibniz-Gemeinschaft

Mitglied der Leibniz-Gemeinschaft Methods of research into dictionary use: online questionnaires Annette Klosa (Institut für Deutsche Sprache, Mannheim) 5. Arbeitstreffen Netzwerk Internetlexikografie, Leiden, 25./26. März 2013 Content

Mehr

HIR Method & Tools for Fit Gap analysis

HIR Method & Tools for Fit Gap analysis HIR Method & Tools for Fit Gap analysis Based on a Powermax APML example 1 Base for all: The Processes HIR-Method for Template Checks, Fit Gap-Analysis, Change-, Quality- & Risk- Management etc. Main processes

Mehr

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff

Mehr

Hazards and measures against hazards by implementation of safe pneumatic circuits

Hazards and measures against hazards by implementation of safe pneumatic circuits Application of EN ISO 13849-1 in electro-pneumatic control systems Hazards and measures against hazards by implementation of safe pneumatic circuits These examples of switching circuits are offered free

Mehr

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3 User Manual for Marketing Authorisation and Lifecycle Management of Medicines Inhalt: User Manual for Marketing Authorisation and Lifecycle Management of Medicines... 1 1. General information... 2 2. Login...

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part XI) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2 ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version

Mehr

MODELLING AND CONTROLLING THE STEERING FORCE FEEDBACK USING SIMULINK AND xpc TARGET

MODELLING AND CONTROLLING THE STEERING FORCE FEEDBACK USING SIMULINK AND xpc TARGET MODELLING AND CONTROLLING THE STEERING FORCE FEEDBACK USING SIMULINK AND xpc TARGET Dipl.-Ing. M. Brünger-Koch, 05/06/09 Model-Based Design Conference 2005 1 Agenda 1. Introduction Company and institute

Mehr

MATLAB driver for Spectrum boards

MATLAB driver for Spectrum boards MATLAB driver for Spectrum boards User Manual deutsch/english SPECTRUM SYSTEMENTWICKLUNG MICROELECTRONIC GMBH AHRENSFELDER WEG 13-17 22927 GROSSHANSDORF GERMANY TEL.: +49 (0)4102-6956-0 FAX: +49 (0)4102-6956-66

Mehr

Presentation of a diagnostic tool for hybrid and module testing

Presentation of a diagnostic tool for hybrid and module testing Presentation of a diagnostic tool for hybrid and module testing RWTH Aachen III. Physikalisches Institut B M.Axer, F.Beißel, C.Camps, V.Commichau, G.Flügge, K.Hangarter, J.Mnich, P.Schorn, R.Schulte, W.

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

Power-Efficient Server Utilization in Compute Clouds

Power-Efficient Server Utilization in Compute Clouds Power-Efficient Server Utilization in Compute Clouds 1/14 Overview 1. Motivation 2. SPECpower benchmark 3. Load distribution strategies 4. Cloud configuration 5. Results 6. Conclusion 2/14 1. Motivation

Mehr

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.) Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.) von Martin Stöcker Motivation Geschwindigkeit der Prozessoren verdoppelt sich alle 18 Monate (Moore s Law) Geschwindigkeit des Speichers

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Fundamentals of Electrical Engineering 1 Grundlagen der Elektrotechnik 1

Fundamentals of Electrical Engineering 1 Grundlagen der Elektrotechnik 1 Fundamentals of Electrical Engineering 1 Grundlagen der Elektrotechnik 1 Chapter: Operational Amplifiers / Operationsverstärker Michael E. Auer Source of figures: Alexander/Sadiku: Fundamentals of Electric

Mehr

Video Line Array Highest Resolution CCTV

Video Line Array Highest Resolution CCTV Schille Informationssysteme GmbH Video Line Array Highest Resolution CCTV SiDOC20120817-001 Disadvantages of high resolution cameras High costs Low frame rates Failure results in large surveillance gaps

Mehr

Exascale Computing. = Exascale braucht Manycore-Hardware...und was für Software??? 46/58

Exascale Computing. = Exascale braucht Manycore-Hardware...und was für Software??? 46/58 Exascale Computing Die FLOP/s-Tabelle: Name Faktor erreicht heute Giga 10 9 1976 CPU-Kern Tera 10 12 1997 Graphikkarte (GPU) Peta 10 15 2009 Supercomputer Exa 10 18 2020(?) Der gegenwärtig schnellste Rechner

Mehr

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str. 3 07743 Jena http://www.im.uni-jena.de Contents I. Learning Objectives II. III. IV. Recap

Mehr

Asynchronous Generators

Asynchronous Generators Asynchronous Generators Source: ABB 1/21 2. Asynchronous Generators 1. Induction generator with squirrel cage rotor 2. Induction generator with woed rotor Source: electricaleasy.com 2/21 2.1. Induction

Mehr

Corporate Digital Learning, How to Get It Right. Learning Café

Corporate Digital Learning, How to Get It Right. Learning Café 0 Corporate Digital Learning, How to Get It Right Learning Café Online Educa Berlin, 3 December 2015 Key Questions 1 1. 1. What is the unique proposition of digital learning? 2. 2. What is the right digital

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

Junction of a Blended Wing Body Aircraft

Junction of a Blended Wing Body Aircraft Topology Optimization of the Wing-Cabin Junction of a Blended Wing Body Aircraft Bin Wei M.Sc. Ögmundur Petersson M.Sc. 26.11.2010 Challenge of wing root design Compare to conventional aircraft: Improved

Mehr

ONLINE LICENCE GENERATOR

ONLINE LICENCE GENERATOR Index Introduction... 2 Change language of the User Interface... 3 Menubar... 4 Sold Software... 5 Explanations of the choices:... 5 Call of a licence:... 7 Last query step... 9 Call multiple licenses:...

Mehr

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient Filing system designer FileDirector Version 2.5 Novelties FileDirector offers an easy way to design the filing system in WinClient. The filing system provides an Explorer-like structure in WinClient. The

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= How to Disable User Account Control (UAC) in Windows Vista You are attempting to install or uninstall ACT! when Windows does not allow you access to needed files or folders.

Mehr

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Zielsetzung: System Verwendung von Cloud-Systemen für das Hosting von online Spielen (IaaS) Reservieren/Buchen von Resources

Mehr

Direkter Zugang zu Simula1onen auf Compute Clustern: Wie COMSOL- Apps CAE neu definieren

Direkter Zugang zu Simula1onen auf Compute Clustern: Wie COMSOL- Apps CAE neu definieren Direkter Zugang zu Simula1onen auf Compute Clustern: Wie COMSOL- Apps CAE neu definieren Dr. Winfried Geis Comsol Mul1physics GmbH Copyright 2015 COMSOL. Any of the images, text, and equaaons here may

Mehr

Serviceinformation Nr. 05/10

Serviceinformation Nr. 05/10 Serviceinformation Nr. 05/10 vom: 05.08.2010 von: GRC 1. Strömungswächter für Grundwasseranlagen Ab sofort können anstelle der Seikom Strömungswächter GF Schwebekörper Durchflussmesser mit Reed Kontakt

Mehr

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich? KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen

Mehr

Memory Models. 17. September 2012

Memory Models. 17. September 2012 Memory Models 17. September 2012 Here Be Dragons In addition, programming idioms used by some programmers and used within Sun s Java Development Kit is not guaranteed to be valid according the existing

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Internationale Energiewirtschaftstagung TU Wien 2015

Internationale Energiewirtschaftstagung TU Wien 2015 Internationale Energiewirtschaftstagung TU Wien 2015 Techno-economic study of measures to increase the flexibility of decentralized cogeneration plants on a German chemical company Luis Plascencia, Dr.

Mehr

Umsetzung in aktuellen Prozessoren

Umsetzung in aktuellen Prozessoren Kapitel 8: Umsetzung in aktuellen Prozessoren 4 Realisierung elementarer Funktionen Reihenentwicklung Konvergenzverfahren 5 Unkonventionelle Zahlensysteme redundante Zahlensysteme Restklassen-Zahlensysteme

Mehr

Distributed testing. Demo Video

Distributed testing. Demo Video distributed testing Das intunify Team An der Entwicklung der Testsystem-Software arbeiten wir als Team von Software-Spezialisten und Designern der soft2tec GmbH in Kooperation mit der Universität Osnabrück.

Mehr

Critical Chain and Scrum

Critical Chain and Scrum Critical Chain and Scrum classic meets avant-garde (but who is who?) TOC4U 24.03.2012 Darmstadt Photo: Dan Nernay @ YachtPals.com TOC4U 24.03.2012 Darmstadt Wolfram Müller 20 Jahre Erfahrung aus 530 Projekten

Mehr

Main Memory. Hauptspeicher. Memories. Speichermodule. SIMM: single inline memory module 72 Pins. DIMM: dual inline memory module 168 Pins

Main Memory. Hauptspeicher. Memories. Speichermodule. SIMM: single inline memory module 72 Pins. DIMM: dual inline memory module 168 Pins 5 Main Memory Hauptspeicher Memories 2 Speichermodule SIMM: single inline memory module 72 Pins DIMM: dual inline memory module 68 Pins 3 Speichermodule 4 Speichermodule 5 Speichermodule 6 2 Hauptspeicher

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

(Prüfungs-)Aufgaben zum Thema Scheduling (Prüfungs-)Aufgaben zum Thema Scheduling 1) Geben Sie die beiden wichtigsten Kriterien bei der Wahl der Größe des Quantums beim Round-Robin-Scheduling an. 2) In welchen Situationen und von welchen (Betriebssystem-)Routinen

Mehr

Ingenics Project Portal

Ingenics Project Portal Version: 00; Status: E Seite: 1/6 This document is drawn to show the functions of the project portal developed by Ingenics AG. To use the portal enter the following URL in your Browser: https://projectportal.ingenics.de

Mehr

SARA 1. Project Meeting

SARA 1. Project Meeting SARA 1. Project Meeting Energy Concepts, BMS and Monitoring Integration of Simulation Assisted Control Systems for Innovative Energy Devices Prof. Dr. Ursula Eicker Dr. Jürgen Schumacher Dirk Pietruschka,

Mehr

Instruktionen Mozilla Thunderbird Seite 1

Instruktionen Mozilla Thunderbird Seite 1 Instruktionen Mozilla Thunderbird Seite 1 Instruktionen Mozilla Thunderbird Dieses Handbuch wird für Benutzer geschrieben, die bereits ein E-Mail-Konto zusammenbauen lassen im Mozilla Thunderbird und wird

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

ISO 15504 Reference Model

ISO 15504 Reference Model Process flow Remarks Role Documents, data, tools input, output Start Define purpose and scope Define process overview Define process details Define roles no Define metrics Pre-review Review yes Release

Mehr

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de Übersicht FachChinesisch SPARC - UltraSparc III/IV PowerPC - PowerPC 970(G5) X86 - Pentium4(Xeon), Itanium, (Pentium M) X86 - AthlonXP/MP,

Mehr

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Eine Betrachtung im Kontext der Ausgliederung von Chrysler Daniel Rheinbay Abstract Betriebliche Informationssysteme

Mehr

Level of service estimation at traffic signals based on innovative traffic data services and collection techniques

Level of service estimation at traffic signals based on innovative traffic data services and collection techniques Level of service estimation at traffic signals based on innovative traffic data services and collection techniques Authors: Steffen Axer, Jannis Rohde, Bernhard Friedrich Network-wide LOS estimation at

Mehr

RS232-Verbindung, RXU10 Herstellen einer RS232-Verbindung zwischen PC und Messgerät oder Modem und Messgerät

RS232-Verbindung, RXU10 Herstellen einer RS232-Verbindung zwischen PC und Messgerät oder Modem und Messgerät Betriebsanleitung RS232-Verbindung, RXU10 Herstellen einer RS232-Verbindung zwischen PC und Messgerät oder Modem und Messgerät ä 2 Operating Instructions RS232 Connection, RXU10 Setting up an RS232 connection

Mehr

Priority search queues: Loser trees

Priority search queues: Loser trees Priority search queues: Loser trees Advanced Algorithms & Data Structures Lecture Theme 06 Tobias Lauer Summer Semester 2006 Recap Begriffe: Pennant, Top node Linien gestrichelt vs. durchgezogen Intro

Mehr

Einführung in die Linguistik, Teil 4

Einführung in die Linguistik, Teil 4 Einführung in die Linguistik, Teil 4 Menschliche Sprachverarbeitung im Rahmen der Kognitionswissenschaft Markus Bader, Frans Plank, Henning Reetz, Björn Wiemer Einführung in die Linguistik, Teil 4 p. 1/19

Mehr

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1 Ein kleiner Einblick in die Welt der Supercomputer Christian Krohn 07.12.2010 1 Vorschub: FLOPS Entwicklung der Supercomputer Funktionsweisen von Supercomputern Zukunftsvisionen 2 Ein Top10 Supercomputer

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124 Gleitkommaarithmetik Erhöhen der Genauigkeit Grundlagen der Rechnerarchitektur Logik und Arithmetik 124 Guard Bit, Round Bit und Sticky Bit Bei der Darstellung der Addition und Multiplikation haben wir

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

FLOXCOM - WP 7 Modelling and Optimisation of Wall Cooling - Wall Temperature and Stress Analysis

FLOXCOM - WP 7 Modelling and Optimisation of Wall Cooling - Wall Temperature and Stress Analysis FLOXCOM - WP 7 Modelling and Optimisation of Wall Cooling - Wall Temperature and Stress Analysis B&B-AGEMA Dr.-Ing. K. Kusterer 1. Status report 2. 3-D simulation of final combustor geometry 3. Publications

Mehr

Latency Scenarios of Bridged Networks

Latency Scenarios of Bridged Networks Latency Scenarios of Bridged Networks Christian Boiger christian.boiger@hdu-deggendorf.de Real Time Communication Symposium January 2012 Munich, Germany D E G G E N D O R F U N I V E R S I T Y O F A P

Mehr

Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang. Institut für Geometrie und Praktische Mathematik RWTH Aachen

Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang. Institut für Geometrie und Praktische Mathematik RWTH Aachen Numerisches Rechnen (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang Institut für Geometrie und Praktische Mathematik RWTH Aachen Wintersemester 2011/12 IGPM, RWTH Aachen Numerisches Rechnen

Mehr

Rough copy for the art project >hardware/software< of the imbenge-dreamhouse artist Nele Ströbel.

Rough copy for the art project >hardware/software< of the imbenge-dreamhouse artist Nele Ströbel. Rough copy for the art project >hardware/software< of the imbenge-dreamhouse artist. Title >hardware/software< This art project reflects different aspects of work and its meaning for human kind in our

Mehr

Numerical Modelling of CO 2 Storage in Geological Formations with MUFTE-UG

Numerical Modelling of CO 2 Storage in Geological Formations with MUFTE-UG Numerical Modelling of CO 2 Storage in Geological Formations with MUFTE-UG Anozie Ebigbo, Andreas Kopp, Holger Class, Rainer Helmig Wednesday, 14th March 2007 Outline Motivation Physical/mathematical and

Mehr

Physics Analysis in ATLAS with PROOF

Physics Analysis in ATLAS with PROOF DPG 2008 Physics Analysis in ATLAS with PROOF Overview 1) Introduction 2) The PROOF Framework 3) Performance Matthias.Schott@cern.ch Johannes.Ebke@physik.uni muenchen.de ATLAS Experiment LMU Munich, Germany

Mehr

GRIPS - GIS basiertes Risikoanalyse-, Informations- und Planungssystem

GRIPS - GIS basiertes Risikoanalyse-, Informations- und Planungssystem GRIPS - GIS basiertes Risikoanalyse-, Informations- und Planungssystem GIS based risk assessment and incident preparation system Gregor Lämmel TU Berlin GRIPS joined research project TraffGo HT GmbH Rupprecht

Mehr

A Brief Introduction to Functional Safety

A Brief Introduction to Functional Safety Who Am I? Name: Profession: Department: Field of Work: Background: Research: Email: Uwe Creutzburg Professor at University of Applied Sciences, Stralsund, Germany Electrical Engineering and Computer Science

Mehr

Pilot Project Biogas-powered Micro-gas-turbine

Pilot Project Biogas-powered Micro-gas-turbine 1/18 Pilot Project Biogas-powered Micro-gas-turbine Supported by the Hessischen Ministerium für Wirtschaft, Verkehr und Landesentwicklung Speaker Details 2/18 Jan Müller Works at Institute of Solar Energy

Mehr

Hauptspeicher- Datenbanksysteme. Hardware-Entwicklungen Column- versus Row-Store...

Hauptspeicher- Datenbanksysteme. Hardware-Entwicklungen Column- versus Row-Store... Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store... Hauptspeicher-Datenbanksysteme Disk is Tape, Tape is dead Jim Gray Die Zeit ist reif für ein Re-engineering der Datenbanksysteme

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

Operation Guide AFB 60. Zeiss - Str. 1 D-78083 Dauchingen

Operation Guide AFB 60. Zeiss - Str. 1 D-78083 Dauchingen Operation Guide AFB 60 Zeiss - Str. 1 D-78083 Dauchingen PCB automation systems AFB 30/60/90 Die flexiblen Puffer der Baureihe AFB werden zwischen zwei Produktionslinien eingesetzt, um unterschiedliche

Mehr

DICO Dimension Coupling

DICO Dimension Coupling DICO Dimension Coupling 3D!" 1D and phase transition (liquid vapor) Jonathan Jung, Martina Friedrich, Claus-Dieter Munz, Jean-Marc Hérard, Philippe Helluy MAC days, Paris University of Stuttgart Institut

Mehr

Business-centric Storage How appliances make complete backup solutions simple to build and to sell

Business-centric Storage How appliances make complete backup solutions simple to build and to sell Business-centric Storage How appliances make complete backup solutions simple to build and to sell Frank Reichart Sen. Dir. Prod. Marketing Storage Solutions 0 The three horrors of data protection 50%

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

Context-adaptation based on Ontologies and Spreading Activation

Context-adaptation based on Ontologies and Spreading Activation -1- Context-adaptation based on Ontologies and Spreading Activation ABIS 2007, Halle, 24.09.07 {hussein,westheide,ziegler}@interactivesystems.info -2- Context Adaptation in Spreadr Pubs near my location

Mehr

ISO 15504 Reference Model

ISO 15504 Reference Model Prozess Dimension von SPICE/ISO 15504 Process flow Remarks Role Documents, data, tools input, output Start Define purpose and scope Define process overview Define process details Define roles no Define

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

FOR ENGLISCH VERSION PLEASE SCROLL FORWARD SOME PAGES. THANK YOU!

FOR ENGLISCH VERSION PLEASE SCROLL FORWARD SOME PAGES. THANK YOU! FOR ENGLISCH VERSION PLEASE SCROLL FORWARD SOME PAGES. THANK YOU! HELPLINE GAMMA-SCOUT ODER : WIE BEKOMME ICH MEIN GERÄT ZUM LAUFEN? Sie haben sich für ein Strahlungsmessgerät mit PC-Anschluss entschieden.

Mehr

Parameter-Updatesoftware PF-12 Plus

Parameter-Updatesoftware PF-12 Plus Parameter-Updatesoftware PF-12 Plus Mai / May 2015 Inhalt 1. Durchführung des Parameter-Updates... 2 2. Kontakt... 6 Content 1. Performance of the parameter-update... 4 2. Contact... 6 1. Durchführung

Mehr

Shock pulse measurement principle

Shock pulse measurement principle Shock pulse measurement principle a [m/s²] 4.0 3.5 3.0 Roller bearing signals in 36 khz range Natural sensor frequency = 36 khz 2.5 2.0 1.5 1.0 0.5 0.0-0.5-1.0-1.5-2.0-2.5-3.0-3.5-4.0 350 360 370 380 390

Mehr

USBASIC SAFETY IN NUMBERS

USBASIC SAFETY IN NUMBERS USBASIC SAFETY IN NUMBERS #1.Current Normalisation Ropes Courses and Ropes Course Elements can conform to one or more of the following European Norms: -EN 362 Carabiner Norm -EN 795B Connector Norm -EN

Mehr

How-To-Do. Hardware Configuration of the CC03 via SIMATIC Manager from Siemens

How-To-Do. Hardware Configuration of the CC03 via SIMATIC Manager from Siemens How-To-Do Hardware Configuration of the CC03 via SIMATIC Manager from Siemens Content Hardware Configuration of the CC03 via SIMATIC Manager from Siemens... 1 1 General... 2 1.1 Information... 2 1.2 Reference...

Mehr

EtherNet/IP Topology and Engineering MPx06/07/08VRS

EtherNet/IP Topology and Engineering MPx06/07/08VRS EtherNet/IP Topology and Engineering MPx06/07/08VRS 3 1. Engineering via free EtherNet/IPTM-Port of a device on Bus from MPx07V10 2. Engineering via optional Industrial-Ethernet-Switch 3. Engineering via

Mehr