1 Konzepte der Parallelverarbeitung



Ähnliche Dokumente
1 Konzepte der Parallelverarbeitung

Lizenzierung von System Center 2012

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

Zeichen bei Zahlen entschlüsseln

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

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

Leichte-Sprache-Bilder

GeoPilot (Android) die App

Lizenzierung von Windows Server 2012

Step by Step Webserver unter Windows Server von Christian Bartl

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Windows Server 2008 (R2): Anwendungsplattform

How to do? Projekte - Zeiterfassung

Lizenzierung von SharePoint Server 2013

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

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

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

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

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

4D Server v12 64-bit Version BETA VERSION

Lizenzierung von SharePoint Server 2013

Anbindung an easybill.de

Lizenzen auschecken. Was ist zu tun?

Binär Codierte Dezimalzahlen (BCD-Code)

Nutzung von GiS BasePac 8 im Netzwerk

Lineare Gleichungssysteme

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

SharePoint Demonstration

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

ARAkoll 2013 Dokumentation. Datum:

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

teischl.com Software Design & Services e.u. office@teischl.com

Die Post hat eine Umfrage gemacht

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

Updatehinweise für die Version forma 5.5.5

SJ OFFICE - Update 3.0

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

3. LINEARE GLEICHUNGSSYSTEME

Repetitionsaufgaben Wurzelgleichungen

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

Fotos in Tobii Communicator verwenden

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Die Invaliden-Versicherung ändert sich

Installation OMNIKEY 3121 USB

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Lizenzierung von Windows Server 2012 R2. Lizenzierung von Windows Server 2012 R2

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

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Video Unlimited -Nutzungsbeschränkungen

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Erstellen von x-y-diagrammen in OpenOffice.calc

Stand vr bank Südthüringen eg 1 von 10. Smart TAN plus Umstellungsanleitung VR-NetWorld Software

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

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

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Windows 8 Lizenzierung in Szenarien

Acht Gute Gründe für Integration und einen Content Backbone

Der Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre.

Guide DynDNS und Portforwarding

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

1 Mathematische Grundlagen

Tipps und Tricks zu Netop Vision und Vision Pro

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

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Lernwerkstatt 9 privat- Freischaltung

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

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Elexis-BlueEvidence-Connector

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

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

ICS-Addin. Benutzerhandbuch. Version: 1.0

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Primzahlen und RSA-Verschlüsselung

Berechtigungsgruppen TimeSafe Leistungserfassung

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie

Informationsmappe. deltatron GmbH. zum Thema VIRTUAL OFFICE

Benutzerhandbuch MedHQ-App

Das Persönliche Budget in verständlicher Sprache

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

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

Virtual Private Network

MPP-TRACKING: EINFLUSS VON MODULTEMPERATUR UND EINSTRAHLUNG

Transkript:

Parallelverarbeitung Folie 1-1 1 Konzepte der Parallelverarbeitung Erhöhung der Rechenleistung verbesserte Prozessorarchitekturen mit immer höheren Taktraten Vektorrechner Multiprozessorsysteme (Rechner mit wenigen Prozessoren) Parallelrechner (massively parallel processors, MPP; Rechner mit einigen 100 bis einigen 1000 Prozessoren) vernetzte (heterogene) Rechner für verteilte Verarbeitung (distributed computing, virtual computer, virtueller Rechner) relativ preiswert, da vorhandene Rechner genutzt werden (die meisten Workstations werden in der Nacht im Allgemeinen nicht benutzt) Rechenleistung kann "beliebig" erhöht werden in das Konzept können auch Vektorrechner oder Parallel- rechner integriert werden Unterstützung des Programmierers durch parallelisierende Compiler bzw. spezielle Bibliotheken und Programme zur Verteilung der Prozesse

Parallelverarbeitung Folie 1-2 Datenaustausch zwischen den parallelen Prozessen über gemeinsamen Speicher (shared memory) über Nachrichtenaustausch (message passing) Eigenschaften eines virtuellen Rechners vereint im Allgemeinen Rechner unterschiedlicher Hersteller die einzelnen Rechner haben im Allgemeinen unterschiedliche Compiler sie besitzen im Allgemeinen unterschiedliche Architekturen (es können Rechner von PCs über Workstations bis zu Höchstleistungsrechnern enthalten sein unterschiedliche Binärformate) sie haben im Allgemeinen unterschiedliche Datenformate (big endian, little endian, Darstellung von Gleitkommazahlen, ) sie sind im Allgemeinen unterschiedlich leistungsfähig sie sind im Allgemeinen unterschiedlich stark ausgelastet sie sind im Allgemeinen unterschiedlich vernetzt (Gigabit-Ethernet, Fast-Ethernet, Myrinet, Fiber Channel, )

Parallelverarbeitung Folie 1-3 die Leistungsfähigkeit hängt im Allgemeinen auch von der Netzlast ab jeder parallele Prozess muss auf jeder Rechnerarchitektur übersetzt werden der Datenaustausch muss über eine "genormte" Schnittstelle erfolgen (Codierung der Nachricht vom internen Format in das "Netzformat" beim Sender und Decodierung beim Empfänger) der Programmierer muss dafür sorgen, dass alle Rechner des virtuellen Rechners ausgelastet werden (schnelle Rechner sollten nicht auf Ergebnisse langsamer Rechner warten müssen) abhängig von der Grundlast einzelner Rechner und des Netzes kann die Leistungsfähigkeit eines virtuellen Rechners sehr stark variieren die Grundlast kann wesentlich sein, wenn der parallele Algorith- mus sensitiv gegenüber Ankunftszeiten von Nachrichten ist

Parallelverarbeitung Folie 1-4 Vorteile eines virtuellen Rechners da vorhandene Hardware genutzt wird, sind die Kosten einer Berechnung im Allgemeinen sehr niedrig die Leistung kann optimiert werden, indem jeder Prozess der am besten geeigneten Rechnerarchitektur zugewiesen wird die Heterogenität kann gezielt ausgenutzt werden die Programmentwicklung erfolgt in einer vertrauten Umgebung der virtuelle Rechner kann schrittweise wachsen und der jeweili- gen Aufgabenstellung angepasst werden (Falls ausreichend viele gleichartige Rechner über ein schnelles Netz zu einem virtuellen Rechner verbunden werden, erhält man eine Konfiguration, die wirtschaftlich und technisch nur sehr schwer mit Höchstleistungsrechnern erbracht werden kann. Beispiel: Die Rendering-Farm zur Erstellung des Films Toy Story (100 Sun Sparc 20 Doppelprozessorsysteme, 1995) bzw. Toy Story II (100 Sun UltraSparc E4500 mit je 14 Prozessoren, 1999). Die Rendering-Farm von 1999 ist ca. 20-mal leistungsfähiger als die von 1995; Communications of the ACM, Vol. 43, Nr. 1, S. 25-29, Januar 2000) eine Erweiterung des virtuellen Rechners um die neueste Rechner- und Netzwerktechnik ist "einfach" möglich die einzelnen Rechner des virtuellen Rechners laufen im Allgemeinen sehr stabil und sind einfach zu administrieren

Parallelverarbeitung Folie 1-5 Leistungsfähigkeit eines Multiprozessorsystems ist abhängig vom Scheduling jeder Prozess/Thread wird nach Möglichkeit immer auf demselben Prozessor ausgeführt (processor affinity, processor binding) Scheduler weist einem Prozess/Thread einen beliebigen freien Prozessor zu (Cache-Speicher muss jedes Mal neu gefüllt werden) Cache-Speicher gemeinsamer L2-Cache kann zum Streit beim Speicherinhalt führen führt im Allgemeinen zu einem Leistungsverlust, wenn unabhängige, sequentielle Programme parallel ausgeführt werden (Cache enthält immer die falschen Daten) führt u. U. zu einer Leistungssteigerung, wenn ein paralleles Programm ausgeführt wird (falls mehrere Prozessoren auf denselben Bereich im gemeinsamen Speicher zugreifen, muss nur der erste Prozessor die Cache-line füllen und alle anderen finden die Daten bereits vor geringe Busaktivität) ein schlechtes Scheduling (keine Prozessor-Affinität) hat geringere Auswirkungen

Parallelverarbeitung Folie 1-6 unabhängige L2-Cache-Speicher main memory cache line cache 12 8 4 0 cache cache line tag processor 1 cache line tag processor 2 jeder Prozessor hat seinen eigenen L2-Cache führt im Allgemeinen zu einer Leistungssteigerung, wenn unabhängige, sequentielle Programme ausgeführt werden kann u. U. zu einem Leistungsverlust führen, wenn ein paralleles Programm ausgeführt wird führt zu häufigem Laden des Pufferspeichers, falls der Scheduler die Zuordnung von Prozessen/Threads zu Prozessoren oft ändert starke Busaktivität

Parallelverarbeitung Folie 1-7 falls ein Prozessor eine Cache-line ändert, müssen alle Kopien in den andern Pufferspeichern ungültig gesetzt oder aktualisiert werden (falls zwei oder mehr Prozessoren Änderungen in derselben Cache-line vornehmen, wird das Problem noch verschärft) sehr hohe Cache- und Busaktivität (bekannt als false sharing; dieses Problem kann auch bei einem gemeinsamen L2-Cache auftreten, da jeder Prozessor immer noch seinen privaten L1-Cache hat) die Daten sollten so angeordnet werden, dass alle Prozesse/Threads in verschiedenen Cache-lines arbeiten falls sich eine kleine Datenstruktur über eine Cache-line- Grenze erstreckt, müssen bei jedem Zugriff u. U. zwei Cache-lines aktualisiert werden

Parallelverarbeitung Folie 1-8 Organisation der parallelen Prozesse Master/Slave Aufgaben des Masters zuständig für die Initialisierung erzeugt alle erforderlichen Prozesse/Threads versorgt die Slaves mit Arbeit sammelt ggf. alle Ergebnisse und gibt sie aus synchronisiert u. U. den zeitlichen Ablauf Aufgaben der Slaves erledigen die Arbeit (z. B. Berechnungen) empfangen ihre Arbeit vom Master (statisch oder dynamisch in Abhängigkeit von ihrer Leistung) manchmal ist die Anzahl der parallelen Prozesse/Threads nicht vorhersagbar, so dass eine Leistungsminderung eintreten kann, wenn alle Slaves um dieselben Ressourcen "kämpfen" Beispiele: Internet-Server parallele Matrix-Multiplikation

Parallelverarbeitung Folie 1-9 Workpile (work queue, Erzeuger/Verbraucher) einige Prozesse/Threads legen Aufträge in einer Warteschlange ab andere Prozesse entnehmen der Warteschlange Aufträge und bearbeiten sie im Allgemeinen gibt es eine feste Anzahl Prozesse/Threads Auftragsspitzen werden über die Warteschlange abgefangen bei zu hoher Dauerlast müssen Aufträge abgewiesen werden, damit die Warteschlange nicht zu groß wird Beispiel: Berechnung einer Mandelbrotmenge baumartige Berechnung (tree computation) Prozesse/Threads werden dynamisch mit dem Fortschritt der Berechnung in einer Baumstruktur erzeugt besonders gut geeignet, wenn die Arbeitslast vorher nicht bekannt ist (z. B. Branch-and-Bound oder Divide-and Conquer-Algorithmen) Beispiel: Branch-and-Bound: Problem des Handlungsreisenden, Divide-and Conquer: Quicksort

Parallelverarbeitung Folie 1-10 Organisation der Arbeit (workload allocation) Partitionierung der Daten (data decomposition, data parallelism) identische Prozesse bearbeiten verschiedene Datenbereiche (Single-Program-Multiple-Data, SPMD) Arbeit wird dynamisch oder statisch verteilt (Bei virtuellen Rechnern ist eine dynamische Zuteilung im Allgemeinen besser, damit alle Rechner trotz schwankender Grund- und Netzlasten gleichmäßig ausgelastet werden.) Beispiel: Berechnung einer Mandelbrotmenge Addition von zwei n-dimensionalen Vektoren (bei p Prozessen/Threads führt jeder Prozess/Thread n/p Additionen aus) Partitionierung der Funktionen (function decomposition, function parallelism) verschiedene Prozesse/Threads führen verschiedene Operationen aus (Multiple-Program-Single-Data, MPSD) Beispiel: Grafik-Pipeline

Parallelverarbeitung Folie 1-11 Kombination der beiden Verfahren verschiedene Prozesse führen verschiedene Operationen aus, wobei die einzelnen Operationen u. U. parallel auf verschiedenen Datenbereichen ausgeführt werden (Multiple-Program-Multiple-Data, MPMD) Granulation der Prozesse grobkörnig viele sequentielle Anweisungen Ausführung der Anweisungen dauert sehr lange feinkörnig wenige sequentielle Anweisungen Ausführung der Anweisungen erfolgt sehr schnell Granulation wird oft als Zeit zwischen zwei Kommunikations- oder Synchronisationspunkten definiert grobkörnige Granulation reduziert die anteiligen Kosten zur Prozesserzeugung und Kommunikation feinkörnige Granulation erhöht die mögliche Parallelität in verteilten Systemen muss sichergestellt sein, dass die Kommunikationszeit nicht über die Rechenzeit dominiert

Parallelverarbeitung Folie 1-12 welche Leistungssteigerung ist möglich? im Allgemeinen kann die Leistung höchstens linear gesteigert werden (superlineare Leistungssteigerung ist in Ausnahmefällen möglich) einige begrenzende Faktoren einige Teile des Programms können nur sequentiell ausgeführt werden (Initialisierung des Systems, Erzeugung paralleler Prozesse/Threads, ) Interprozesskommunikation kostet Zeit (z. B. Nachrichten senden) Synchronisation der Prozesse/Threads kostet Zeit u. U. sind zusätzliche Berechnungen in der parallelen Version erforderlich (z. B. lokale Berechnung eines Wertes in jedem Prozess) Annahme: alle sequentiellen Programmteile sind am Anfang konzentriert und alle parallelen Teilen werden ohne zusätzlichen Verwaltungsaufwand parallel ausgeführt (f sei der Anteil, der sequentiell ausgeführt werden muss) t s f t s (1 - f) t s 1 processor serial code parallel code n processors t p f t s (1 - f) t s / n

Parallelverarbeitung Folie 1-13 ts Leistungserhöhung S( n) = = t p ts n = ft + ( 1 f ) t / n 1+ ( n 1 ) f s s Gleichung ist als das Amdahl'sche Gesetz bekannt Begrenzung der Leistungssteigerung auf S( n) = 1 f n (bei 5% sequentiellem und 95% parallelem Code kann die Leistung maximal auf das 20-fache gesteigert werden) das Amdahl'sche Gesetz gilt für Probleme fester Größe, deren Rechenzeit durch mehr Prozessoren reduziert werden soll Gustafson hat festgestellt, dass mehr Rechenleistung im Allgemeinen dazu genutzt wird, größere Probleme zu lösen die Problemgröße wird so skaliert, dass die parallele Rechenzeit konstant bleibt der sequentielle Programmanteil wächst im Allgemeinen nicht mit der Problemgröße

Parallelverarbeitung Folie 1-14 Gustafson's skalierte Leistungserhöhung S n s( ) Annahme: s bezeichne die Zeit um den sequentiellen Teil des Programms auszuführen und p die für den parallelen Teil Ausführungszeit auf parallelem Rechner mit n Prozessoren: s + p (Gesamtlaufzeit ist fest; zur algebraischen Vereinfachung: s + p = 1) Ausführungszeit auf sequentiellem Rechner: s + n p (alle parallelen Teile müssen sequentiell ausgeführt werden) s np Ss ( n) = + s + p s n( s) + 1 s + 1 s s+ p=1 = n + ( 1 n) s (ein Multiprozessorsystem mit 32 Prozessoren kann bei 5% sequentiellem Code nach Amdahl eine 12,55-fache Leistungssteigerung erreichen und nach Gustafson eine 30,45-fache) das Gustafson'sche Gesetz scheint den heutigen Intentionen näher zu kommen, da im Allgemeinen komplexere Probleme innerhalb einer festen Zeit gelöst werden sollen