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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Introducing PAThWay. Structured and methodical performance engineering. Isaías A. Comprés Ureña Ventsislav Petkov Michael Firbach Michael Gerndt

Introducing PAThWay. Structured and methodical performance engineering. Isaías A. Comprés Ureña Ventsislav Petkov Michael Firbach Michael Gerndt Introducing PAThWay Structured and methodical performance engineering Isaías A. Comprés Ureña Ventsislav Petkov Michael Firbach Michael Gerndt Technical University of Munich Overview Tuning Challenges

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

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

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

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

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

Mehr erreichen mit der bestehenden Infrastuktur. Mathias Widler Regional Sales Manager DACH mwidler@a10networks.com

Mehr erreichen mit der bestehenden Infrastuktur. Mathias Widler Regional Sales Manager DACH mwidler@a10networks.com Mehr erreichen mit der bestehenden Infrastuktur Mathias Widler Regional Sales Manager DACH mwidler@a10networks.com 1 Das Unternehmen A10 Networks Gegründet 2004, 240 Mitarbeiter Mission: Marktführer im

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

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

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

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

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

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

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes.

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes. Prediction Market, 28th July 2012 Information and Instructions S. 1 Welcome, and thanks for your participation Sensational prices are waiting for you 1000 Euro in amazon vouchers: The winner has the chance

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

Grundlagen der Parallelisierung

Grundlagen der Parallelisierung Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung

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

Fehler in numerischen Rechnungen

Fehler in numerischen Rechnungen Kapitel 1 Fehler in numerischen Rechnungen Analyse numerischer Rechnungen: - Welche möglichen Fehler? - Einfluss auf Endergebnis? - Nicht alles in der Comp.Phys./Numerical Analysis dreht sich um Fehler

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

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

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

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

(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

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

Frequently asked Questions for Kaercher Citrix (apps.kaercher.com)

Frequently asked Questions for Kaercher Citrix (apps.kaercher.com) Frequently asked Questions for Kaercher Citrix (apps.kaercher.com) Inhalt Content Citrix-Anmeldung Login to Citrix Was bedeutet PIN und Token (bei Anmeldungen aus dem Internet)? What does PIN and Token

Mehr

Possible Solutions for Development of Multilevel Pension System in the Republic of Azerbaijan

Possible Solutions for Development of Multilevel Pension System in the Republic of Azerbaijan Possible Solutions for Development of Multilevel Pension System in the Republic of Azerbaijan by Prof. Dr. Heinz-Dietrich Steinmeyer Introduction Multi-level pension systems Different approaches Different

Mehr

Software development with continuous integration

Software development with continuous integration Software development with continuous integration (FESG/MPIfR) ettl@fs.wettzell.de (FESG) neidhardt@fs.wettzell.de 1 A critical view on scientific software Tendency to become complex and unstructured Highly

Mehr

Extended Ordered Paired Comparison Models An Application to the Data from Bundesliga Season 2013/14

Extended Ordered Paired Comparison Models An Application to the Data from Bundesliga Season 2013/14 Etended Ordered Paired Comparison Models An Application to the Data from Bundesliga Season 2013/14 Gerhard Tutz & Gunther Schauberger Ludwig-Maimilians-Universität München Akademiestraße 1, 80799 München

Mehr

Bayerisches Landesamt für Statistik und Datenverarbeitung Rechenzentrum Süd. z/os Requirements 95. z/os Guide in Lahnstein 13.

Bayerisches Landesamt für Statistik und Datenverarbeitung Rechenzentrum Süd. z/os Requirements 95. z/os Guide in Lahnstein 13. z/os Requirements 95. z/os Guide in Lahnstein 13. März 2009 0 1) LOGROTATE in z/os USS 2) KERBEROS (KRB5) in DFS/SMB 3) GSE Requirements System 1 Requirement Details Description Benefit Time Limit Impact

Mehr

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

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part II) 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

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

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

The Single Point Entry Computer for the Dry End

The Single Point Entry Computer for the Dry End The Single Point Entry Computer for the Dry End The master computer system was developed to optimize the production process of a corrugator. All entries are made at the master computer thus error sources

Mehr

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health)

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health) Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health) 1 Utilitarian Perspectives on Inequality 2 Inequalities matter most in terms of their impact onthelivesthatpeopleseektoliveandthethings,

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

EEX Kundeninformation 2002-08-30

EEX Kundeninformation 2002-08-30 EEX Kundeninformation 2002-08-30 Terminmarkt - Eurex Release 6.0; Versand der Simulations-Kits Kit-Versand: Am Freitag, 30. August 2002, versendet Eurex nach Handelsschluss die Simulations -Kits für Eurex

Mehr

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1 IT für Führungskräfte Zentraleinheiten 11.04.2002 Gruppe 2 - CPU 1 CPU DAS TEAM CPU heißt Central Processing Unit! Björn Heppner (Folien 1-4, 15-20, Rollenspielpräsentation 1-4) Harald Grabner (Folien

Mehr

Restschmutzanalyse Residual Dirt Analysis

Restschmutzanalyse Residual Dirt Analysis Q-App: Restschmutzanalyse Residual Dirt Analysis Differenzwägeapplikation, mit individueller Proben ID Differential weighing application with individual Sample ID Beschreibung Gravimetrische Bestimmung

Mehr

Simulation of Longitudinal Beam Dynamics

Simulation of Longitudinal Beam Dynamics Fachgebiet Theoretische Elektrotechnik und Numerische Feldberechnung PD Dr. Markus Clemens DESY Beam Dynamics Meeting Simulation of Longitudinal Beam Dynamics, Markus Clemens Chair for Theory in Electrical

Mehr

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Scientific Computing 07. Oktober 2009 Siegfried Benkner Wilfried Gansterer Fakultät für Informatik Universität Wien www.cs.univie.ac.at

Mehr

Robotino View Kommunikation mit OPC. Communication with OPC DE/EN 04/08

Robotino View Kommunikation mit OPC. Communication with OPC DE/EN 04/08 Robotino View Kommunikation mit OPC Robotino View Communication with OPC 1 DE/EN 04/08 Stand/Status: 04/2008 Autor/Author: Markus Bellenberg Festo Didactic GmbH & Co. KG, 73770 Denkendorf, Germany, 2008

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ Seite 1 Einführung in die Programmierung mit C Teil IV - Weiterführende Themen 16. SIMD Programmierung Was bedeutet SIMD Seite SIMD Single-Instruction, Multiple-Data, also eine Instruktion, mehrere Daten

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

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

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz Datentypen Operanden-Stack Konstanten-Pool Methoden-Area Heap für Laufzeit-Daten Class File Format 26 Die Java Virtual Machine Java Instruktions-Satz

Mehr

SemTalk Services. SemTalk UserMeeting 29.10.2010

SemTalk Services. SemTalk UserMeeting 29.10.2010 SemTalk Services SemTalk UserMeeting 29.10.2010 Problemstellung Immer mehr Anwender nutzen SemTalk in Verbindung mit SharePoint Mehr Visio Dokumente Viele Dokumente mit jeweils wenigen Seiten, aber starker

Mehr

Hardware-Architekturen

Hardware-Architekturen Kapitel 3 Hardware-Architekturen Hardware-Architekturen Architekturkategorien Mehrprozessorsysteme Begriffsbildungen g Verbindungsnetze Cluster, Constellation, Grid Abgrenzungen Beispiele 1 Fragestellungen

Mehr

Convey, Hybrid-Core Computing

Convey, Hybrid-Core Computing Convey, Hybrid-Core Computing Vortrag im Rahmen des Seminars Ausgewählte Themen in Hardwareentwurf und Optik HWS 09 Universität Mannheim Markus Müller 1 Inhalt Hybrid-Core Computing? Convey HC-1 Überblick

Mehr

Developing Interactive Integrated. Receiver Decoders: DAB/GSM Integration

Developing Interactive Integrated. Receiver Decoders: DAB/GSM Integration Developing Interactive Integrated Wolfgang Klingenberg Robert-Bosch GmbH Hildesheim Wolfgang.Klingenberg@de.bosch.co Receiver Decoders: DAB/GSM Integration DAB-GSM-Integration.ppt 1 Overview DAB receiver

Mehr

On Optimal Algorithms for List Ranking in the Parallel External Memory Model with Applications to Treewidth and other Elementary Graph Problems

On Optimal Algorithms for List Ranking in the Parallel External Memory Model with Applications to Treewidth and other Elementary Graph Problems Diss. ETH No. 22205 On Optimal Algorithms for List Ranking in the Parallel External Memory Model with Applications to Treewidth and other Elementary Graph Problems A thesis submitted to attain the degree

Mehr

Challenges and solutions for field device integration in design and maintenance tools

Challenges and solutions for field device integration in design and maintenance tools Integrated Engineering Workshop 1 Challenges and solutions for field device integration in design and maintenance tools Christian Kleindienst, Productmanager Processinstrumentation, Siemens Karlsruhe Wartungstools

Mehr

EEX Kundeninformation 2002-09-11

EEX Kundeninformation 2002-09-11 EEX Kundeninformation 2002-09-11 Terminmarkt Bereitstellung eines Simulations-Hotfixes für Eurex Release 6.0 Aufgrund eines Fehlers in den Release 6.0 Simulations-Kits lässt sich die neue Broadcast-Split-

Mehr

Verzeichnisdienste in heterogenen Systemen

Verzeichnisdienste in heterogenen Systemen Verzeichnisdienste in heterogenen Systemen Zielsetzungen Implementierung Aufbau: Active Directory (AD) auf Basis von Windows Server 008 R mit Windows Client(s), Linux Client(s) und einem Linux Server (Dateiserver).

Mehr

GmbH, Stettiner Str. 38, D-33106 Paderborn

GmbH, Stettiner Str. 38, D-33106 Paderborn Serial Device Server Der Serial Device Server konvertiert die physikalische Schnittstelle Ethernet 10BaseT zu RS232C und das Protokoll TCP/IP zu dem seriellen V24-Protokoll. Damit können auf einfachste

Mehr

Model-based Development of Hybrid-specific ECU Software for a Hybrid Vehicle with Compressed- Natural-Gas Engine

Model-based Development of Hybrid-specific ECU Software for a Hybrid Vehicle with Compressed- Natural-Gas Engine Model-based Development of Hybrid-specific ECU Software for a Hybrid Vehicle with Compressed- Natural-Gas Engine 5. Braunschweiger Symposium 20./21. Februar 2008 Dipl.-Ing. T. Mauk Dr. phil. nat. D. Kraft

Mehr

Technical Thermodynamics

Technical Thermodynamics Technical Thermodynamics Chapter 1: Introduction, some nomenclature, table of contents Prof. Dr.-Ing. habil. Egon Hassel University of Rostock, Germany Faculty of Mechanical Engineering and Ship Building

Mehr

Titelmasterformat durch Klicken bearbeiten

Titelmasterformat durch Klicken bearbeiten Titelmasterformat durch Klicken Titelmasterformat durch Klicken Die neue HDS Panama Serie Enterprise Plattform für den gehobenen Mittelstand Andreas Kustura, Silvio Weber Kramer & Crew GmbH & Co. KG Titelmasterformat

Mehr

Labour law and Consumer protection principles usage in non-state pension system

Labour law and Consumer protection principles usage in non-state pension system Labour law and Consumer protection principles usage in non-state pension system by Prof. Dr. Heinz-Dietrich Steinmeyer General Remarks In private non state pensions systems usually three actors Employer

Mehr

PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC)

PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC) Information Management II / ERP: Microsoft Dynamics NAV 2009 Page 1 of 5 PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC) Event-driven Process Chains are, in simple terms, some kind

Mehr

Microcontroller Architectures and Examples

Microcontroller Architectures and Examples Microcontroller Architectures and Examples Thomas Basmer telefon: 0335 5625 334 fax: 0335 5625 671 e-mail: basmer [ at ] ihp-microelectronics.com web: Outline Microcontroller in general Introduction Main

Mehr

Perinorm Systemvoraussetzungen ab Version Release 2010

Perinorm Systemvoraussetzungen ab Version Release 2010 Perinorm Systemvoraussetzungen ab Version Release 2010 1. DVD Version - Einzelplatzversion Betriebssystem Unterstützte Betriebssysteme Windows XP, Windows Vista Windows 7 (falls bereits verfügbar) Auf

Mehr

D A T E N... 1 Daten Micheuz Peter

D A T E N... 1 Daten Micheuz Peter D A T E N.....! Symbole, Alphabete, Codierung! Universalität binärcodierter Daten! Elementare Datentypen! Speicherung binärcodierter Daten! Befehle und Programme! Form und Bedeutung 1 Daten Micheuz Peter

Mehr

PA-CONTROL CANopen Fehlerliste Ab Version 5.15 Ausgabe: 06/2008 Art.-Nr.:1082211. Technische Dokumentation

PA-CONTROL CANopen Fehlerliste Ab Version 5.15 Ausgabe: 06/2008 Art.-Nr.:1082211. Technische Dokumentation Technische Dokumentation PA-CONTROL CANopen Fehlerliste Ab Version 5.15 Ausgabe: 06/2008 Art.-Nr.:1082211 IEF Werner GmbH Wendelhofstr. 6 78120 Furtwangen Tel.: 07723/925-0 Fax: 07723/925-100 www.ief-werner.de

Mehr

MindestanforderungenanDokumentationvon Lieferanten

MindestanforderungenanDokumentationvon Lieferanten andokumentationvon Lieferanten X.0010 3.02de_en/2014-11-07 Erstellt:J.Wesseloh/EN-M6 Standardvorgabe TK SY Standort Bremen Standard requirements TK SY Location Bremen 07.11.14 DieInformationenindieserUnterlagewurdenmitgrößterSorgfalterarbeitet.DennochkönnenFehlernichtimmervollständig

Mehr

Prof. Dr. Margit Scholl, Mr. RD Guldner Mr. Coskun, Mr. Yigitbas. Mr. Niemczik, Mr. Koppatz (SuDiLe GbR)

Prof. Dr. Margit Scholl, Mr. RD Guldner Mr. Coskun, Mr. Yigitbas. Mr. Niemczik, Mr. Koppatz (SuDiLe GbR) Prof. Dr. Margit Scholl, Mr. RD Guldner Mr. Coskun, Mr. Yigitbas in cooperation with Mr. Niemczik, Mr. Koppatz (SuDiLe GbR) Our idea: Fachbereich Wirtschaft, Verwaltung und Recht Simple strategies of lifelong

Mehr

Einbau- und Bedienungsanleitung KEMPER KHS-Kabelset Figur 686 03 004

Einbau- und Bedienungsanleitung KEMPER KHS-Kabelset Figur 686 03 004 Einbau- und Bedienungsanleitung KEMPER KHS-Kabelset Figur 686 03 004 DE EN Anschluss an die Gebäudeleittechnik Die Hygienespülung verfügt über zwei Schnittstellen: Schnittstelle RS485 Digitale Schnittstelle

Mehr

TomTom WEBFLEET Tachograph

TomTom WEBFLEET Tachograph TomTom WEBFLEET Tachograph Installation TG, 17.06.2013 Terms & Conditions Customers can sign-up for WEBFLEET Tachograph Management using the additional services form. Remote download Price: NAT: 9,90.-/EU:

Mehr

Neuerungen in Dymola 2015 FD01

Neuerungen in Dymola 2015 FD01 Neuerungen in Dymola 2015 FD01 Leo Gall 2015-01-14 2015-01-14 Neuerungen in Dymola 2015 FD01 1 Überblick 1. Compiler und Betriebssysteme 2. Beschleunigte Simulation Parallelisierung Verbesserte Behandlung

Mehr

Wie bekommt man zusätzliche TOEFL-Zertifikate? Wie kann man weitere Empfänger von TOEFL- Zertifikaten angeben?

Wie bekommt man zusätzliche TOEFL-Zertifikate? Wie kann man weitere Empfänger von TOEFL- Zertifikaten angeben? Wie bekommt man zusätzliche TOEFL-Zertifikate? Wie kann man weitere Empfänger von TOEFL- Zertifikaten angeben? How do I get additional TOEFL certificates? How can I add further recipients for TOEFL certificates?

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

Dynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50

Dynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Dynamische Programmiersprachen David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Organisatorisches Aufbau: Vorlesung 2 SWS Übung Kurzreferat Projekt Prüfung Übung wöchentliches Aufgabenblatt in

Mehr

RailMaster New Version 7.00.p26.01 / 01.08.2014

RailMaster New Version 7.00.p26.01 / 01.08.2014 RailMaster New Version 7.00.p26.01 / 01.08.2014 English Version Bahnbuchungen so einfach und effizient wie noch nie! Copyright Copyright 2014 Travelport und/oder Tochtergesellschaften. Alle Rechte vorbehalten.

Mehr

PCI VME Interface SIS1100/SIS3100

PCI VME Interface SIS1100/SIS3100 PCI VME Interface SIS1100/SIS3100 Peter Wüstner Forschungszentrum Jülich, Zentrallobor für Elektronik (ZEL) Designprinzip der im ZEL entwickelten Datenaufnahmesysteme ist es, preiswerte PC Technik mit

Mehr

Intralogistics and Storage System in a Press Shop in the Automotive Industry

Intralogistics and Storage System in a Press Shop in the Automotive Industry Vollert Anlagenbau GmbH + Co. KG Postfach 13 20 74185 Weinsberg/Germany Stadtseestr. 12 74189 Weinsberg/Germany Telefon +49 (0) 7134 / 52-229 Telefax +49 (0) 7134 / 52-222 E-mail: intralogistics@vollert.de

Mehr

XML Template Transfer Transfer project templates easily between systems

XML Template Transfer Transfer project templates easily between systems Transfer project templates easily between systems A PLM Consulting Solution Public The consulting solution XML Template Transfer enables you to easily reuse existing project templates in different PPM

Mehr

Algorithms & Datastructures Midterm Test 1

Algorithms & Datastructures Midterm Test 1 Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar

Mehr