Message-Passing: Einführung

Größe: px
Ab Seite anzeigen:

Download "Message-Passing: Einführung"

Transkript

1 Message-Passing: Einführung Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 1 Punkt zu Punkt Senden und Empfangen Message-Passing Mechanismus Erzeugung von Prozessen. Übertragung einer Nachricht zwischen den Prozessen durch send() und recv() Funktionen. Prozess 1 Object x;.. send (&x, 2);... Datentransfer Prozess 2 Object y;.. recv (&y, 1);... Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 2 1

2 Message Passing Interface (MPI) Bibliothek (C, C++, Fortran) für den Austausch von Nachrichten zwischen Prozessen. Prozesse werden statisch allokiert und mit 0,...,N-1 nummeriert. Jeder Prozess startet das gleiche Programm (Single Program Multiple Data - SPMD). Stellt Funktionen und Datentypen beginnend mit MPI_ bereit. (logische) Topologie ist eine Clique Jeder Prozessor kann direkt mit jedem anderen kommunizieren Kommunikatoren regeln die Kommunikation zwischen den Prozessen Jeder Prozess gehört zu mindestens einem Kommunikator Jede Nachricht wird in einem Kommunikator transportiert Kommunikatoren können beliebig neu erzeugt werden Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 3 MPI Versionen Version 1.0: (1994) 129 MPI-Funktionen C und Fortran77 Version 1.1 Spezifikation verfeinert Version 1.2 Weitere Eindeutigkeiten Version 2.0: (1997) Mehr Funktionalitäten, 193 weitere Funktionen Dynamische Generierung von Prozessen Einseitige Kommunikation MPI-Funktionen für I/O C++ und Fortran90 Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 4 2

3 SPMD Ausführungsmodell Single Program Multiple Data (SPMD) lässt sich aber auch erweitern: #include <mpi.h> main (int argc, char *argv[]) { MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, & myrank); /* find process rank */ if (myrank == 0) master(); else slave();... MPI_Finalize(); } Dabei sind master() und slave() Funktionen die durch einen Master- und ggf. mehrere Slave-Prozesse ausgeführt werden sollen. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 5 Basisroutinen MPI_Init(int *,char ***); Startet MPI. Muss erste MPI-Routine sein, die aufgerufen wird MPI_Finalize(); Beendet MPI und schließt die Kommunikationskanäle. MPI_Comm_rank( MPI_Comm, int *) Eigene Prozessnummer innerhalb des Kommunikators. Menge von MPI-Prozessen, die Nachrichten austauschen können. MPI_COMM_WORLD enthält alle Prozesse MPI_Comm_size( MPI_Comm, int *) Anzahl der Prozesse innerhalb des Kommunikators. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 6 3

4 Basisroutinen MPI_Send(void *, int, MPI_Datatype, int, int, MPI_Comm); Zeiger auf Message- s. Tab. Ziel- Tag s.o. Message länge pro- Im Speicher zess(or) MPI_Datatype C-Datentyp MPI_CHAR char MPI_SHORT short MPI_INT int MPI_LONG long MPI_UNSIGNED_CHAR (unsigned) char MPI_UNSIGNED_SHORT unsogned short MPI_UNSIGNED unsigned int MPI_UNSIGNED_LONG unsigned long MPI_FLOAT float MPI_DOUBLE double MPI_DOUBLE_LONG long double MPI_BYTE - MPI_PACKED - Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 7 Basisroutinen MPI_Recv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status*); Zeiger auf Buffer- s. Tab. Tag s.o. Status der Message größe Sender Empfangs- Im Speicher operation MPI_ANY_SOURCE + MPI_ANY_TAG sind Wildcarts Tag und Communicator des MPI_Send und MPI_Recv müssen übereinstimmen MPI_Status enthält u.a.: status MPI_SOURCE (Sender der Nachricht) status MPI_TAG (Message-Tag) status MPI_ERROR (0, falls kein Fehler) MPI_Send/MPI_Recv blockiert (eventuell!) Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 8 4

5 MPI für Java Objekt-orientiertes Java-Interface für MPI entwickelt im HPJava Projekt mpijava 1.2 unterstützt MPI unterstützt u.a. MPICH unter Linux import mpi.*; public class MPI_HelloWorld { public static void main(string[] args) { System.out.println( Hello, world ); } } Ausführung javac MPI_HelloWorld.java prunjava 4 MPI_HelloWorld Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 9 Kommunikationsmethoden buffernd bzw. nicht buffernd buffernd: Nachricht wird (beim Sender) zwischengespeichert synchron bzw. nicht synchron synchron: Programmflusskontrolle wird nicht zurückgegeben, bis die zu sendende Nachricht angekommen ist. blockierend bzw. nicht blockierend blockierend: Programmflusskontrolle wird nicht zurückgegeben, bis die zu sendende Nachricht gesichert ist, d.h. entweder beim Empfänger angekommen, oder in einem Systembuffer zwischengespeichert ist. User-Speicher ist danach wieder frei. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 10 5

6 Send Kommunikationsmodi (1) Standard Mode Send passendes Recv muss nicht vor Send ausgeführt werden. Größe des Buffers nicht im MPI-Standard definiert. Falls Buffer genutzt, kann das Send beendet werden bevor das passende Recv erreicht ist. Buffered Mode Send kann vor dem passenden Recv starten und beenden. Speicher für Buffer muss explizit allokiert werden MPI_Buffer_attach(). Synchronous Mode Send und Recv können beliebig starten, beenden aber gemeinsam. Ready Mode Send kann nur starten, wenn pasendes Recv bereits erreicht wurde. Ansonsten kommt eine Fehlermeldung zurück. Muss mit Vorsicht eingesetzt werden. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 11 Send Kommunikationsmodi (2) Alle vier Modi können mit einem blocking oder non-blocking Send kombiniert werden. Nur der Standardmodus ist für das blocking und nonblocking Recv möglich. Jeder Send Typ kann mit jedem Recv Typ matchen. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 12 6

7 Beispiel: Blockierendes Senden Blockierendes Senden eines Werts x von Prozess 0 zu Prozess 1 int myrank; int msgtag = 4711; int x;... MPI_Comm_rank (MPI_COMM_WORLD, & myrank); /* find process rank */ if (myrank == 0) MPI_Send (&x, 1, MPI_INT, 1, msgtag, MPI_COMM_WORLD); else if (myrank == 1) { int status; int x; MPI_Recv (&x, 1, MPI_INT, 0, msgtag, MPI_COMM_WORLD, status); } Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 13 Non-Blocking Routinen Non-blocking Send: MPI_Isend(buf, count, datatype, dest, tag, comm, request) Kommt sofort zurück, auch wenn die zu versendenden Daten noch nicht geändert werden dürfen. Non-blocking Receive: MPI_Irecv(buf, count, datatype, dest, tag, comm, request) Kommt sofort zurück, auch wenn noch keine Daten vorliegen Beendigung durch MPI_Wait() und MPI_Test() erkennen MPI_Waits() wartet bis Operation beendet ist und kehrt danach zurück. MPI_Test() kommt sofort mit dem Zustand der Send- / Recvroutine (beendet bzw. nicht-beendet) zurück Dafür muss der request Parameter verwendet werden Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 14 7

8 Beispiel: Nichtblockierendes Senden Nichtblockierendes Senden eines Werts x von Prozess 0 zu Prozess 1, wobei Prozess 0 mit Ausführung unmittelbar fortfahren kann. int myrank; int msgtag = 4711; MPI_Comm_rank (MPI_COMM_WORLD, & myrank); /* find process rank */ if (myrank == 0) { int status; int x; MPI_Isend (&x, 1, MPI_INT, 1, msgtag, MPI_COMM_WORLD, req1); compute(); MPI_Wait (req1, status); } else if (myrank == 1) { int status; int x; MPI_Recv (&x, 1, MPI_INT, 0, msgtag, MPI_COMM_WORLD, status); }... Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 15 Kollektive Kommunikation Kommunikation innerhalb einer Gruppe aus Prozessen. Keine Message-Tags verwendet. Broadcast- und Scatter-Routinen MPI_Bcast() - Broadcast from root to all other processes MPI_Gather() - Gather values for group of processes MPI_Scatter() - Scatters buffer in parts to group of processes MPI_Alltoall() - Sends data from all processes to all processes MPI_Reduce() - Combine values on all processes to single value MPI_Reduce_Scatter() - Combine values and scatter results MPI_Scan() - Compute prefix reductions of data on processes Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 16 8

9 Kollektive Kommunikation Vorher Nachher root B MPI_BCAST B B B B root A B C D MPI_SCATTER A B C D A B C D MPI_GATHER root A B C D A B C D A B C D MPI_ALLGATHER A B C D A B C D A B C D A B C D A B C D A B C D A B C D E F G H I J K L M N O P MPI_ALLTOALL A B C D E F G H I J K L M N O P A E I M B F J N C G K O D H L P RANK Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 17 Beispiel: MPI_Gather Beachte, dass MPI_Gather von allen Prozessen inkl. Root aufgerufen werden muss! int data[10]; (* data to be gathered from processes */ MPI_Comm_rank (MPI_COMM_WORLD, & myrank); /* find process rank */ if (myrank == 0) { MPI_Comm_Size(MPI_COMM_WORLD, &grp_size); buf = (int*)malloc(grp_size*10*sizeof(int)); /* allocate memory /* } MPI_Gather (data, 10, MPI_INT, buf, grp_size*10, MPI_INT, 0, MPI_COM_WORLD);... Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 18 9

10 Einseitige Kommunikation Verfügbar in MPI Version 2 Remote Memory Access, put + get Operationen Initialisierungen MPI_Alloc_mem, MPI_Free_mem MPI_Win_create, MPI_Win_free Kommunikationsroutine MPI_Put MPI_Get MPI_Accumulate Synchronizationen MPI_Win_fence MPI_Win_post, MPI_Win_start, MPI_Win_complete, MPI_Win_wait MPI_Win_lock, MPI_Win_unlock Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 19 Message-Passing-Modell Pro s: Programmierer bestimmt Datenund Arbeitsverteilung Eindeutigkeit der Lokalität Con s: Relativ hoher Kommunikationsaufwand bei kleinen Nachrichten Nicht einfach anwendbar Beispiel: Message Passing Interface (MPI) Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 20 10

11 Shared-Memory-Modell Pro s: Einfache Befehle Lesen des entfernten Speichers durch Bilden eines Ausdrucks Schreiben einer entfernten Speicherzelle durch einfache Wertzuweisung Con s: Manipulation von gemeinsam genutzten Speicherzellen erfordern meistens doch explizite Synchronizationspunkte Keine Eindeutigkeit der Lokalität Beispiele: OpenMP POSIX Threads Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 21 Hybrides Modell: Shared Mem. + Message Passing Beispiele: POSIX Threads innerhalb der Knoten und MPI zwischen Knoten OpenMP auf den Knoten und MPI Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 22 11

12 Abstraktionsebenen der Programmierung Programmiersprache Pthreads Java Threads OpenMP MPI RMI Threads Shared-Memory Message-Passing verteiltes Shared-Memory MPP Cluster SMP CC-NUMA Cray-Link 3d-Netz IB MyriNet Ethernet Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 23 Parallelarbeit vs. Parallelitätsebenen Parallelarbeitstechniken Suboperationsebene Anweisungsebene Blockebene Prozeßebene Programmebene SIMD-Techniken Vektorrechnerprinzip X Feldrechnerprinzip X Techniken der Parallelarbeit in der Prozessorarchitektur Befehlspipelining X Superskalar X VLIW X Überlappung von E/A- mit CPU-Operationen X Feinkörniges Datenflußprinzip X Techniken der Parallelarbeit durch Prozessorkopplung Speicherkopplung (SMP) X X X Speicherkopplung (DSM) X X X Grobkörniges Datenflußprinzip X X Nachrichtenkopplung X X Techniken der Parallelarbeit durch Rechnerkopplung PC-Cluster X X Grid- und Cloud-Computer X X Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 24 12

13 Rechnerarchitekturen Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 25 Von Neumann Architektur CPU address bus Program Control Unit Arithmetic-Logic Unit RAM Program + Data data bus I/O 1947: John von Neumann entwickelte einen programmgesteuerten Univeralrechner Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 26 13

14 Nach wie vor eingesetzte Architektur Prozessor (CPU) Daten-Bus Adress-Bus Kontroll-Bus Hauptspeicher Controller Controller Gerät Gerät Gerät Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 27 Prozessor Grundelemente eines Prozessors sind Rechenwerk: führt die arithmetischen und die logischen Operationen aus Steuerwerk: stellt Daten für das Rechenwerk zur Verfügung, d.h. holt die Befehle aus dem Speicher, koordiniert den internen Ablauf Register: Speicher mit Informationen über die aktuelle Programmbearbeitung, z.b. Rechenregister, Indexregister Stapelzeiger (stack pointer) Basisregister (base pointer) Befehlszähler (program counter, PC) Unterbrechungsregister, Steuerwerk Befehlsdekodierung und Ablaufsteuerung PC, Befehlsregister, Zustandsregister Rechenwerk arithmetische/ logische Einheit Gleitkommaeinheit Register R 1 -R n Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 28 14

15 BUS (Bidirectional Universal Switch) Übertragungsmedium, das von mehreren angeschlossenen Einheiten gemeinsam benutzt wird Die parallelen Leitungen werden in drei Gruppen untergliedert: Adressleitungen Datenleitungen Steuerleitungen Unterscheidung bezüglich Daten- und Adressbreite, der Anzahl der anschließbaren Geräte, Beispiel: Ein Systembus wie PCI-X verfügt über 64 Daten- und 32 Adressleitungen und hat eine Bandbreite von 1064 MByte/sec Bus Datenleitung Adressleitung Steuerleitung Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 29 Hauptspeicher Hauptspeicher (Arbeitsspeicher): temporäre Speicherung der aktiven Programme und der dazugehörigen Daten typische Größe derzeit bei PCs 1 GByte bis 4 GByte logische Organisation des Speichers: Folge aus Bytes, auf die einzeln lesend oder schreibend zugegriffen werden kann (Random Access Memory, RAM) theoretische Größe des Speichers wird durch die Breite des Adressbusses festgelegt ein kleiner Teil des physischen Adressraums besteht aus ROM-Bausteinen (Read Only Memory) mit Routinen zum Starten der Systemsoftware dieser Teil wird bei jedem Hochfahren des Rechners ausgeführt max Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 30 15

16 Daten-Cache Die Geschwindigkeit des Hauptspeichers ist zu gering für die Rechenleistung der Prozessoren Einsatz von Cache-Speichern notwendig Prozessor Adresse Daten Cache Adresse Daten Hauptspeicher Adress- Tag* Index: Block-Offset: Byte Byte Byte Byte Byte Cache-Line Adresse: Datenblock Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 31 Assoziativität eines Caches / t Direct-mapped Cache Tag Index Block-Offset V Tag / k Datenblock / / t 2-Way Set-Associative Cache Tag Index Block-Offset / k b V Tag Datenblock V Tag / b Datenblock 2 k Lines / t = / t = = HIT Datenwort oder -Byte HIT Datenwort oder -Byte Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 32 16

17 Cache-Aufbau und Charakteristika Cache-Lines (Blockgröße als Parameter; typisch z.b. 32 Bytes) Caches deutlich kleiner als Hauptspeicher mapping von HS-Blöcken notwendig direct mapped jeder Block wird auf festen Bereich abgebildet fully associate Block kann überall im Cache abgelegt werden m-way set associative: Block kann beliebig in einer Menge von m Cache-Lines abgelegt werden Replacement: zufällig oder LRU verallgemeinert die beiden anderen Prinzipien Weitere Charakteristika: Latenzzeit Bandbreite Kapazität des Caches Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 33 Cache-Miss-Typen Compulsory-Miss: auch cold-start-miss genannt erster Zugriff auf Block führt zu einem Cache-Miss Capacity-Miss: Cache nicht groß genug für alle benötigten Blöcke Cache-Miss ist aufgetreten, obwohl der Block schon einmal im Cache war und verdrängt wurde Conflict-Miss: Adresskollision auch collision-miss oder interferences-miss genannt Capacity-Miss der durch eine zu geringe Assoziativität des Caches oder zu große Blöcke begründet ist Ping-Pong-Effekt möglich Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 34 17

18 Compulsory-Misses Problem: Noch nicht genutzte Daten sind typischerweise nicht im Cache Folge: erster Zugriff auf Daten potentiell sehr teuer Optimierung: größere Cache-Lines (räumliche Lokalität nutzen) erhöht Latenzzeit bei Cache-Miss kann Anzahl der Conflict-Misses erhöhen Prefetching Datenwort laden bevor es tatsächlich benötigt wird Überlappung von Berechungen und Ladeoperationen nur sinnvoll bei nicht-blockierenden Caches Varianten nächstes Datenwort laden (unit stride access) wiederkehrende Zugriffsmuster erkennen und laden (stream prefetch) Zeigerstrukturen laden Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 35 Strategien beim Design Latenzzeit bei Hit und Miss reduzieren Multi-Level-Cache Speicherzugriffe überlappend ausführen (Pipelining) diverse andere Hardwaretechniken (s. Computer Architecture: A Cache-Trefferrate erhöhen Hardware-Techniken Datenzugriffstransformationen Daten-Layout-Transformationen Latenzzeit verdecken Out-of-Order Execution Multithreading Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 36 18

19 Speicherhierarchien Memory Wall Der Unterschied zwischen Prozessor- und Speichergeschwindigkeit wird immer größer Leistungsfähigere Speicherhierarchien notwendig Größere Speicherkapazitäten kleinere Fertigungsstrukturen nutzbar Höhere Frequenzen Steigerung beschränkt durch die Physik Breitere Datenpfade beschränkt durch Parallelität in der Anwendung Mehr Speicherebenen Potentiell auf mehreren Ebenen nachfolgende Misses Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 37 Beispiel: IBM POWER 6 Prozessor Power 6 2 Kerne pro Prozessor 65 nm, 341 mm² 4 bis 5 GHz Kernfrequenz AltiVec + SIMD Einheiten je Kern 64 kb L1-Cache 4 MByte L2-Cache Externer 32 MByte L3-Cache On-Chip Lokaler Speicherkontroller SMP Interconnect Quelle: IBM Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 38 19

20 IBM Power6 p595 Architektur 64 Core SMP 32 x Power6 Prozessor max GByte, 400 bis 667 MHz DDR2 Speicher Node Ausmaße 19 Rack 2m Höhe 1,5 Tonnen 41 kw Stromverbrauch System Quelle: IBM Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 39 Speicherhierarchie: IBM Power 595 (Power6) CPU Kapazität Bandbreite Latenz Register 256 Byte 120 GByte/s 0.2 ns 1. Level Cache 64 kbyte 75 GByte/s 0.4 ns 2. Level Cache 4 MByte 150 GByte/s 4 ns 3. Level Cache 1 32 MByte 20 GByte/s 32 ns Lokal Main Memory GByte 42 GByte/s 90 ns Remote Main Memory GByte 140 GByte/s < 1 µs Remote Main Memory GByte 8 x 140 GByte/s ~ 1 µs Swap Space on SSD > X * 500 GByte/s < 1 ms Swap Space on Harddisk >> X * 200 MByte/s ~5 ms 1 shared by 2 Cores 2 shared by 8 Cores 3 shared by up to 64 Cores Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 40 20

21 Beispiel: AMD Opteron 2400 / 8400 AMD Hexa-Core Istanbul Lokale L1, -L2-Caches (64/512 kb) Shared L3-Cache (6 MB) Hypertransport 3.0 (4.8 GT/s) MOESI Cache-Koherenzprotokoll Core Core Core Core Core Core L1 64kB L2 512kB L1 64kB L2 512kB L1 64kB L2 512kB L1 64kB L2 512kB L3-6 MByte L1 64kB L2 512kB L1 64kB L2 512kB 2.6 GHz Kernfrequenz 128 bit SSE-Einheiten DDR2 Speicher-Controller 45 nm, 904 Mio. Transistoren 115 Watt TDP, Sockel F Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 41 Beispiel: Intel Core i7 Nehalem 4 Kerne pro Prozessor, 3.2 GHz Kernfrequenz 45 nm, 731 Mio. Transistoren je Kern 32 kbyte L1-D-Cache, 8-wege 256 kbyte L2-Cache, 8-wege 64 Byte Cache-Lines 8 MByte L3-Cache Speicherkontroller 3 Speicherkanäle 133 MHz / DDR Kein ECC MESIF Cache-Koherenzprotrokoll Quick Path Interconnect (QPI) Bidirektionaler Link 3200 MHz Taktfrequenz je Richtung: 20 Bits, 6.4 GT/s, 16 GByte/s Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 42 21

22 Multi-Cores Sehr viele Cores pro Chip Intel Polaris 80 Cores Tilera Tile64 64 Cores Viele Cores pro Chip IBM Cell 8 SPEs Sun T2 8 Sparc-Cores Prozessor Cache Router Quelle: Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 43 Spezialprozessoren Tops Systems Corp Raytracing-Chip - 9 Chips mit insgesamt 800 TFLOPS - Jeweils 8 Cluster mit 8 Cores - ca. 900 Watt Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 44 22

23 Hauptspeichergeschwindigkeit Geschwindigkeit pro Speichermodul. Quelle: Rambus Inc. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 45 Trends Leistungsunterschied zwischen CPU und RAM wird weiter wachsen Mehrkernprozessoren Speicherhierarchien mit 10 Stufen oder auch mehr Stärkere Unterstützung durch Compiler und Tools gefordert Stärke Einbindung von Programmiererwissen Intelligente RAMs (IRAM) Univ. of California at Berkeley RAMs mit CPU on chip (PIM) Kommunikation zwischen RAM-Chips wie bei Parallelrechnern Programmierbare Caches z.b. MORPH Projekt (Univ. of Illinois) volle Kontrolle über Caches für Compiler (und Programmierer) Realisierung durch rekonfigurierbare Architekturen Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 46 23

24 Teil 3: Architektur paralleler Rechnersysteme Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 47 Einfache Definition Parallelrechner George S. Almasi, IBM Thomas J. Watson Research Center Allan Gottlieb, New York University A parallel computer is a collection of processing elements that communicate and cooperate to solve large problems fast. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 48 24

25 Rechnerarchitektur Eine Rechnerarchitektur ist bestimmt durch ein Operationsprinzip für die Hardware und die Struktur ihres Aufbaus aus den einzelnen Hardware-Betriebsmitteln (Giloi 1993) Operationsprinzip Das Operationsprinzip definiert das funktionelle Verhalten der Architektur durch Festlegung einer Informationsstruktur und einer Kontrollstruktur. Hardware-Struktur Die Struktur einer Rechnerarchitektur ist gegeben durch Art und Anzahl der Hardware-Betriebsmittel und die sie verbindenden Kommunikationseinrichtungen. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon in anderen Worten Operationsprinzip Vorschrift über das Zusammenspiel der Komponenten Strukturanordnung Struktur der Verknüpfung von Komponenten Grundlegende Strukturbausteine sind Prozessor (CPU), als aktive Komponente zur Ausführung von Programmen, Hauptspeicher, beinhaltet die Programmbefehle und die Daten, Übertragungsmedium zur Verbindung der einzelnen Architekturkomponenten, Steuereinheiten für Anschluss und Kontrolle von Peripheriegeräten und Geräte, als Zusatzkomponenten für Ein- und Ausgabe von Daten sowie Datenspeicherung. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 50 25

26 Rechnerarchitektur paralleler Systeme Operationsprinzip: gleichzeitige Ausführung von Befehlen sequentielle Verarbeitung bei Beschränkungen innerhalb des Algorithmus Arten des Parallelismus: Explizit: Die Möglichkeit der Parallelverarbeitung wird a priori festgelegt. Hierzu sind geeignete Datentypen bzw. Datenstrukturen erforderlich, z.b. Vektoren (lineare Felder) samt Vektoroperationen. Implizit: Die Möglichkeit der Parallelverarbeitung ist nicht a priori bekannt. Durch eine Datenabhängigkeitsanalyse werden die parallelen und sequentiellen Teilschritte des Algorithmus zur Laufzeit ermittelt. Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 51 Strukturelemente von Parallelrechnern Parallelrechner besteht aus einer Menge von Verarbeitungselementen, die in einer koordinierten Weise teilweise zeitgleich zusammenarbeiten, um eine Aufgabe zu lösen Verarbeitungselemente können sein: spezialisierte Einheiten, wie z.b. die Pipeline-Stufen eines Skalarprozessors oder die Vektor-Pipelines der Vektoreinheit eines Vektorrechners gleichartige Rechenwerke, wie z.b. die Verarbeitungselemente eines Feldrechners Prozessorknoten eines Multiprozessorsystems vollständige Rechner, wie z.b. Workstations oder PCs eines Clusters selbst wieder ganze Parallelrechner oder Cluster Vorlesung: Architektur Paralleler Rechnersysteme WS09/10 J.Simon 52 26

Rechnerarchitekturen. Von Neumann Architektur

Rechnerarchitekturen. Von Neumann Architektur Rechnerarchitekturen Vorlesung: Architektur Paralleler Rechnersysteme WS13/14 J.Simon 1 Von Neumann Architektur Adressbus CPU Program Control Unit I/O Arithmetic-Logic Unit RAM Program + Data Steuerbus

Mehr

Kurzübersicht über die wichtigsten MPI-Befehle

Kurzübersicht über die wichtigsten MPI-Befehle Kurzübersicht über die wichtigsten MPI-Befehle Hans Joachim Pflug Rechen- und Kommunkationszentrum der RWTH Aachen Inhalt MPI_Init / MPI_Finalize...2 MPI_Comm_size / MPI_Comm_rank...3 MPI_Send / MPI_Recv...4

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

Parallele Programmierung

Parallele Programmierung Parallele Programmierung PThreads OpenMP MPI Übung: Architektur Paralleler Rechnersysteme WS08/09 J.Simon 1 PThread Programmierung Übung: Architektur Paralleler Rechnersysteme WS08/09 J.Simon 2 1 PThreads

Mehr

4.4. MPI Message Passing Interface

4.4. MPI Message Passing Interface 4.4. MPI Message Passing Interface Ferienakademie 2009 Franz Diebold Agenda 1. Einführung, Motivation 2. Kommunikationsmodell 3. Punkt-Zu-Punkt-Kommunikation 4. Globale Kommunikation 5. Vergleich MPI und

Mehr

Modelle der Parallelverarbeitung

Modelle der Parallelverarbeitung Modelle der Parallelverarbeitung Modelle der Parallelverarbeitung 12. Message Passing Interface Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Sommersemester 2017 1 / 36 Überblick

Mehr

Mikrocontroller Grundlagen. Markus Koch April 2011

Mikrocontroller Grundlagen. Markus Koch April 2011 Mikrocontroller Grundlagen Markus Koch April 2011 Übersicht Was ist ein Mikrocontroller Aufbau (CPU/RAM/ROM/Takt/Peripherie) Unterschied zum Mikroprozessor Unterschiede der Controllerarten Unterschiede

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

Einführung in das parallele Programmieren mit MPI und Java

Einführung in das parallele Programmieren mit MPI und Java Einführung in das parallele Programmieren mit und Java Seite 1 Übersicht Parallele Prozesse und Erste Schritte mit Kollektive Kommunikation Weitere Möglichkeiten Seite 2 Literatur (1) Homepage des 2-Forums

Mehr

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Parallele Programmierung mit MPI

Parallele Programmierung mit MPI Parallele Programmierung mit MPI Marc-Oliver Straub entstanden aus: Parallele Programmierung mit MPI - ein Praktikum Warum Parallelprogrammierung große numerische Probleme (Simulation) optische Bildverarbeitung

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Rechner Architektur. Martin Gülck

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

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

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

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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Trend der letzten Jahre in der Parallelrechentechnik

Trend der letzten Jahre in der Parallelrechentechnik 4.1 Einführung Trend der letzten 10-15 Jahre in der Parallelrechentechnik weg von den spezialisierten Superrechner-Plattformen hin zu kostengünstigeren Allzwecksystemen, die aus lose gekoppelten einzelnen

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

Konzepte der parallelen Programmierung

Konzepte der parallelen Programmierung Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Konzepte der parallelen Programmierung Parallele Programmiermodelle Nöthnitzer Straße 46 Raum 1029 Tel. +49 351-463

Mehr

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop

Mehr

1 Aufgaben zu Wie funktioniert ein Computer?

1 Aufgaben zu Wie funktioniert ein Computer? 71 1 Aufgaben zu Wie funktioniert ein Computer? Netzteil a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 3.3 V, 5 V, 12 V, -5 V, -12 V. b) Warum können PC-Netzteile hohe Leistungen liefern,

Mehr

4D Server v12 64-bit Version BETA VERSION

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

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

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

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

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Protected User-Level DMA in SCI Shared Memory Umgebungen

Protected User-Level DMA in SCI Shared Memory Umgebungen Protected User-Level DMA in SCI Shared Memory Umgebungen Mario Trams University of Technology Chemnitz, Chair of Computer Architecture 6. Halle Chemnitz Seminar zu Parallelverarbeitung und Programmiersprachen

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Anleitung zur Nutzung des SharePort Utility

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

Mehr

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

Einführung in die technische Informatik

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

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

Man liest sich: POP3/IMAP

Man liest sich: POP3/IMAP Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und

Mehr

Parallel Programming: Message-Passing-Interface

Parallel Programming: Message-Passing-Interface Vorlesung Rechnerarchitektur 2 Seite 71 MPI-Einführung Parallel Programming: Voraussetzungen im Source-Code für ein MPI Programm: mpi.h includen Die Kommandozeilenparameter des Programms müssen an MPI_Init

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d 3 0 1 2 3. Technische Informatik I Übung 3. Technische Informatik I Übung 3

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d 3 0 1 2 3. Technische Informatik I Übung 3. Technische Informatik I Übung 3 Institut für Kommunikationsnetze und Rechnersysteme Technische Informatik I Paul J. Kühn, Matthias Meyer Übung 3 Speicherhierarchie Inhaltsübersicht Aufgabe 3.1 Daten-Cache Aufgabe 3.2 Virtueller Speicher

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

E-Mail Adressen der BA Leipzig

E-Mail Adressen der BA Leipzig E-Mail Adressen der BA Jeder Student der BA bekommt mit Beginn des Studiums eine E-Mail Adresse zugeteilt. Diese wird zur internen Kommunikation im Kurs, von der Akademie und deren Dozenten zur Verteilung

Mehr

Windows Server 2008 (R2): Anwendungsplattform

Windows Server 2008 (R2): Anwendungsplattform Mag. Christian Zahler, Stand: August 2011 13 14 Mag. Christian Zahler, Stand: August 2011 Mag. Christian Zahler, Stand: August 2011 15 1.5.2 Remotedesktop-Webverbindung Windows Server 2008 (R2): Anwendungsplattform

Mehr

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 VORBEDINGUNGEN Als Vorbedingungen sollte bereits

Mehr

Programmierung von Multicore-Rechnern

Programmierung von Multicore-Rechnern Programmierung von Multicore-Rechnern Prof. Dr.-Ing. habil. Peter Sobe HTW Dresden, Fakultät Informatik/Mathematik www.informatik.htw-dresden.de Gliederung: Ein Blick auf Multicore-Prozessoren/ und -Rechner

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Speedup: Grundlagen der Performanz Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 30. April 2015 Eine Aufgabe aus der Praxis Gegeben ein

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

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

Mehr

SolarWinds Engineer s Toolset

SolarWinds Engineer s Toolset SolarWinds Engineer s Toolset Monitoring Tools Das Engineer s Toolset ist eine Sammlung von 49 wertvoller und sinnvoller Netzwerktools. Die Nr. 1 Suite für jeden Administrator! Die Schwerpunkte liegen

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

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

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

High Performance Datenerfassung Tests am Beispiel WEGA

High Performance Datenerfassung Tests am Beispiel WEGA High Performance Datenerfassung am Beispiel WEGA Langmuir 5. Mai 2010 High Performance Datenerfassung am Beispiel WEGA Hardware Timing Netzwerk Hardware zwei identische Systeme bestehend aus Controller

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme SSDs und Flash Memory Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme Seite 2 Inhalt Motivation Aufbau und Funktionsweise NAND vs NOR SLC vs MLC Speicherorganisation Vergleich mit konventionellen

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers 1. Installation und Programmstart Die Verbindung zum Inclinometer funktioniert nicht unter Windows XP, 2000. 1.1 Installation Zur Installation

Mehr

Die Marvel, ein gedrosselter Supercomputer

Die Marvel, ein gedrosselter Supercomputer Die Marvel, ein gedrosselter Supercomputer Warum ist die Marvel so schnell? Warum ist die Marvel so langsam? Erfahrungen mit dem Softwaresupport Warum ist die Marvel so schnell? Hardware Z.Cvetanovic,

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

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

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper Speicherverwaltung Real Mode Nach jedem starten eines PC befindet sich jeder x86 (8086, 80386, Pentium, AMD) CPU im sogenannten Real Mode. Datenregister (16Bit) Adressregister (20Bit) Dadurch lassen sich

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1 Entwicklung der DRAMs Richard Roth / FB Informatik und Mathematik Speicher 1 Entwicklung der DRAMs in Zukunft Richard Roth / FB Informatik und Mathematik Speicher 2 DRAM Speicherzelle (Trench Technology)

Mehr

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

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

Mehr

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

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor. Rechnerstrukturen 6. System Systemebene 1 (Monoprozessor) 2-n n (Multiprozessor) s L1- in der L2- ( oder Motherboard) ggf. L3- MMU Speicher Memory Controller (Refresh etc.) E/A-Geräte (c) Peter Sturm,

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Grundlagen der Rechnerarchitektur. Speicher

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

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

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

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 2 Virtual Storage el0100 copyright

Mehr

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

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

Mehr