Programmierung Paralleler Prozesse



Ähnliche Dokumente
Abschnitt: Algorithmendesign und Laufzeitanalyse

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Algorithmen & Datenstrukturen 1. Klausur

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Benutzerkonto unter Windows 2000

Teil VIII Von Neumann Rechner 1

Mikrocontroller Grundlagen. Markus Koch April 2011

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Einführung in PHP. (mit Aufgaben)

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

Die Mikroprogrammebene eines Rechners

Sortieren. Eine Testmenge erstellen

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

5 Speicherverwaltung. bs-5.1 1

BEISPIELKLAUSUR Softwareentwicklung:

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Hardware/Software-Codesign

Das Prinzip an einem alltäglichen Beispiel

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Sortierverfahren für Felder (Listen)

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Nachtrag zu binären Suchbäumen

Theoretische Informatik SS 04 Übung 1

Version 0.3. Installation von MinGW und Eclipse CDT

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

HP Software Patch- und Version-Notification

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Übung - Konfigurieren einer Windows-XP-Firewall

Algorithmen und Datenstrukturen

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Verwendung des IDS Backup Systems unter Windows 2000

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Lösungsvorschlag zur 4. Übung

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

1. Übung - Einführung/Rechnerarchitektur

Parallels Mac Management 3.5

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Überblick. Lineares Suchen

EasyWk DAS Schwimmwettkampfprogramm

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Benutzerhandbuch MedHQ-App

Das vorliegende Dokument beinhaltet vertrauliche Informationen und darf nicht an Dritte weitergereicht werden.

1 topologisches Sortieren

4D Server v12 64-bit Version BETA VERSION

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Computer-Architektur Ein Überblick

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

Kugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand

Kapitel I: Registrierung im Portal

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Wirtschaftsinformatik I

Konzepte der Informatik

Installationsanleitung WibuKey Treiber

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Gesicherte Prozeduren

Kapitel 5: Dynamisches Programmieren Gliederung

Kostenmaße. F3 03/04 p.188/395

DOKUMENTATION VOGELZUCHT 2015 PLUS

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

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

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Benutzerverwaltung Business- & Company-Paket

Pflegende Angehörige Online Ihre Plattform im Internet

Was ist Logische Programmierung?

Das Formular-Management-System (FMS) der Bundesfinanzverwaltung

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

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

Data Mining-Projekte

Preis- und Leistungsverzeichnis der Host Europe GmbH. Dedicated Storage - ISCSI V 1.1. Stand:

Agile Enterprise Development. Sind Sie bereit für den nächsten Schritt?

Zeichen bei Zahlen entschlüsseln

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Secure Mail der Sparkasse Holstein - Kundenleitfaden -

OrgChart 2.30 INTRANET-AUSGABE 2 DARSTELLUNGSOPTIONEN 5 SUCHFUNKTION 8 SYMBOLEDITOR 8 LOGA-VERSION 8 FEHLERBEREINIGUNGEN 9 SUCHFUNKTION 2

Praktikum Mikrocomputertechnik

Studientag 1793 Software Engineering I. 6. Juli 2014

BSV Ludwigsburg Erstellung einer neuen Internetseite

Synchronisations- Assistent

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

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Das Warenwirtschaftswunder

Kostenstellen verwalten. Tipps & Tricks

Data Mining: Einige Grundlagen aus der Stochastik

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

DES der vergangene Standard für Bitblock-Chiffren

Standard Daten-Backup-Script

Orientierungstest für angehende Industriemeister. Vorbereitungskurs Mathematik

Mediumwechsel - VR-NetWorld Software

Transkript:

Vorlesung Programmierung Paralleler Prozesse Prof. Dr. Klaus Hering Sommersemester 2007 HTWK Leipzig, FB IMN

Sortierproblem Gegeben: Menge M mit einer Ordnungsrelation (etwa Menge der reellen Zahlen) Folge a = (a 1,..., a n ) über M Gesucht: Folge a = (a 1,..., a n ) mit a i a j geordnete Folge a verkörpert für 1 i j n, welche die aufsteigend Beispiel für einen vergleichsbasierten sequentiellen Algorithmus: Objekte: Elemente von M, Folgen über M, ganze Zahlen spezielle Regel zur Objektverarbeitung: compare-exchange (ad1, ad2) Wirkung: Die Werte unter ad1 und ad2 werden vertauscht, wenn der erste größer als der zweite ist (andernfalls wird die Wertzuordnung nicht geändert) 0250 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Bubble Sort Notation des Algorithmus (Vorschrift zur Regelanwendung): procedure BUBBLE_SORT (n) for i := n - 1 downto 1 do for j := 1 to i do compare-exchange ( a j, a j+1 ); end BUBBLE_SORT [KUMAR] Versuch der Überführung in einen parallelen Algorithmus 0260 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Gedanken zur Parallelisierung (I) Grundgedanke: parallele Ausführung von compare-exchange Operationen Schwierigkeit: Resultate von compare-exchange Operationen gehen in jeweils nachfolgende Operationen ein; betrachtet man die zu behandelnde Folge als in einem Array gespeichert, wird ein Element a j durch eine compare-exchange Operation ggf. überschrieben und dieses Resultat von der nachfolgenden Operation verwendet Lösung des Konflikts: Einführung von Phasen, in denen compare-exchange Operationen keine Überlappung hinsichtlich der betroffenen Folgenelemente haben 0270 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Odd - Even Transposition (Sequent.) procedure ODD-EVEN (n) for i := 1 to n do if i is odd then for j := 0 to n/2-1 do compare-exchange ( a 2j+1, a 2j+2 ); else for j := 1 to n/2-1 do compare-exchange ( a 2j, a 2j+1 ); end ODD-EVEN [KUMAR] 0280 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Gedanken zur Parallelisierung (II) Annahme: Feld von PEs mit jeweils zugehörigem ME Nachbarn sind in der Lage, bidirektional miteinander zu kommunizieren Ausgangsverteilung der zu sortierenden Folge: jede PE verfügt über genau ein Folgenelement parallele Realisierung einer compare-exchange Operation zwischen zwei benachbarten PEs P i und P j : a i a j a i, a j a j, a i min{a i, a j } max{a i, a j } P i P j P i P j P i P j Kommunikation lokale Resultatbildung PE-bezogene Kommunikationspartner und Resultatbildung phasenabhängig weiterhin notwendig: Synchronisation der Phasen! 0290 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Odd - Even Transposition (Parallel) unsortiert n Phasen sortiert 3 2 3 8 5 6 4 1 2 3 3 8 5 6 1 4 2 3 3 5 8 1 6 4 2 3 3 5 1 8 4 6 2 3 3 1 5 4 8 6 2 3 1 3 4 5 6 8 2 1 3 3 4 5 6 8 1 2 3 3 4 5 6 8 1 2 3 3 4 5 6 8 Phase 1 (odd) Phase 2 (even) Phase 3 (odd) Phase 4 (even) Phase 5 (odd) Phase 6 (even) Phase 7 (odd) Phase 8 (even) 0300 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Gedanken zur Parallelisierung (III) Übergang zu der Annahme, dass jedes PE nicht ein Folgenelement, sondern n/p Folgenelemente verwaltet (p... Anzahl der eingesetzten PEs) Modifikation der parallelen Variante von Odd - Even Transposition: Phasen wie in der vorangehenden Variante, zu Beginn der ersten Phase sortiert jedes PE die ihm zugeordnete Teilfolge sequentiell Ausführung von compare-split Operationen anstelle von compareexchange Operationen Compare - Split Operation in Bezug auf zwei benachbarte PEs P i und P i+1 : beide PEs schicken sich gegenseitig die von ihnen jeweils aktuell verwaltete Teilfolge jedes PE merged die vorhandene mit der erhaltenen Teilfolge zu einer geordneten Folge P i behält die erste Hälfte dieser Folge, P i+1 die zweite Hälfte 0310 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Compare - Split Operation [KUMAR] 0320 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Komparatoren Konstruktion spezieller Netzwerke zur Realisierung von Sortieralgorithmen Grundbausteine: Komparatoren + - 0330 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007 [KUMAR]

Sortiernetzwerke 0340 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007 [KUMAR]

Bitonic Merge 0350 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007 [QUINN]

Quicksort (Sequentiell) Divide-and-Conquer Strategie rekursive Bildung kürzerer zu sortierender Folgen mit Start ausgehend von der ursprünglich zu sortierenden Folge 0360 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007 [KUMAR]

Quicksort (Parallel) 0370 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

1.3 Parallelität auf Prozessorebene

Bitparallelität erste elektronische Digitalrechner arbeiteten mit bitseriellem Hauptspeicher Kathodenstrahlröhrensystem nach WILLIAMS erlaubte erstmalig parallelen Zugriff auf alle Bits eines Worts IBM 701 (1953) war der erste kommerzielle Rechner, bei dem Bitparallelarithmetik realisiert war Mitte der 80iger Jahre wuchs Wortbreite von Mikroprozessoren auf 32 Bits, Mitte der 90iger Jahre Erhöhung auf 64 Bits; Entwicklung im wesentlichen durch zwei Forderungen getragen: Anforderungen an die Genauigkeit von Floating Point Zahlen Ansprechmöglichkeit eines hinreichend großen Adressraums 0380 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007 [RAUBER, QUINN]

I/O - Prozessoren Input Output I/O - Prozessor Memory Control Unit Entlastung der CPU, speziell für I/O-Operationen konzipierter Befehlssatz Weitere speicherbezogene Parallelitätsaspekte: CPU Memory Interleaved memory Daten- und Befehls-Caches 0390 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Instruction Pipelining Typische Phasen der Befehlsverarbeitung: Laden des nächsten auszuführenden Befehls (Fetch, F) Dekodieren dieses Befehls (Decode, D) Bestimmen der Operandenadressen und Befehlsausführung (Execute, E) Rückschreiben des Resultats (Write back, W) Befehl 4 Befehl 3 Befehl 2 Befehl 1 F D E W F D E W F D E W F D E W Problem: Datenabhängigkeiten behindern gegebenenfalls vollständige Ausnutzung der Pipeline-Stufen Zeit [RAUBER] 0400 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Pipelined Functional Units Beispiel: Verarbeitung von Floating Point Zahlen Fraktion verschieben Fraktionen addieren Normalisieren Register 0410 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Multiplizität von Funktionseinheiten Prozessoren mit mehreren unabhängigen Funktionseinheiten wie ALUs (Arithmetic Logical Unit), FPUs (Floating Point Unit), Speicherzugriffseinheiten (Load/Store Unit) oder Sprungeinheiten (Branch Unit) Dabei werden im wesentlichen superskalare Prozessoren und Very Long Instruction Word (VLIW) Prozessoren unterschieden: Befehlssequenzen für superskalare Prozessoren werden per Hardware auf die zur Verfügung stehenden Funktionseinheiten verteilt, wenn die Datenabhängigkeiten zwischen den Instruktionen das erlauben. Dabei wird ein dynamisches Scheduling verwendet, was eine zusätzliche Erhöhung der Hardwarekomplexität nach sich zieht. Für VLIW Prozessoren werden durch spezielle Compiler Befehlsworte erzeugt, die für jede Funktionseinheit angeben, welche Instruktion zum entsprechenden Zeitpunkt ausgeführt wird (statisches Scheduling). [RAUBER] 0420 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007

Parallelverarbeitung Startpunkt der Parallelverarbeitung als Disziplin in den 70iger Jahren, wesentliche Einflußfaktoren: Entwicklung der VLSI - Technologie Entwicklung von Programmiertechniken (Semaphore, Monitore,...) Konstruktion erster echter paralleler Computer, z.b. C.mmp (Computer with multiple miniprocessors) Erfolgreiche Weiterentwicklung der Vector Computer (Cray-Serie) 0430 Programmierung Paralleler Prozesse, Prof. Klaus Hering, SS 2007