Institute for Software Science – University of ViennaP.Brezany Parallele und verteilte Systeme Peter Brezany Institut für Softwarewissenschaften Universität.

Slides:



Advertisements
Ähnliche Präsentationen
Developing your Business to Success We are looking for business partners. Enterprise Content Management with OS|ECM Version 6.
Advertisements

Einführung in die Informatik: Programmierung und Software-Entwicklung
The difference between kein and nicht.
PC-Cluster.
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
Fakultät für informatik informatik 12 technische universität dortmund Universität Dortmund Middleware Peter Marwedel TU Dortmund, Informatik 12 Germany.
Peter Marwedel TU Dortmund, Informatik 12
Fakultät für informatik informatik 12 technische universität dortmund Hardware/Software Partitioning Peter Marwedel Informatik 12 TU Dortmund Germany Chapter.
Fakult ä t f ü r informatik informatik 12 technische universit ä t dortmund Data flow models Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 3. Quartal 2002.
Wozu die Autokorrelationsfunktion?
Studiengang Informatik FHDW
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Hier wird Wissen Wirklichkeit Computer Architecture – Part 10 – page 1 of 31 – Prof. Dr. Uwe Brinkschulte, Prof. Dr. Klaus Waldschmidt Part 10 Thread and.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
JAVA RMI.
Differentieller Stromverstärker
Desktop All Users \ Dokumente \ Eigene Bilder \ Beispielbilder Lokale Einstellungen \ Anwendung- sdaten \ Identities \ {B2E3E498-D8E7- 4EC FA }
Lehrstuhl Informatik III: Datenbanksysteme AstroGrid-D Meeting Heidelberg, Informationsfusion und -Integrität: Grid-Erweiterungen zum Datenmanagement.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Unified Messaging Tagung der DFN-Nutzergruppe „Hochschulverwaltung“
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Tag um Tag, Jahr um Jahr, Tag um Tag, Jahr um Jahr, Day by day, year by year, Wenn ich durch diese Straßen geh', When I go through these streets, Seh ich.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
By the end of the lesson: ALL will have some ideas of structures to use to describe a dream holiday. MOST will be able to add opinions and include this.
Netzteil Netzwerkkarte IDE-Kabel Stromversorgungsstecker
Ein Rechensystem ist ein aus Hard- und Software bestehendes System zur Speicherung und Verarbeitung von Informationen.
Server.
Inhalt Was ist A-Plan? Einsatzgebiete Organisation der Daten
Eine Einführung in die CD-ROM
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
< Titel - Foliensatz >
Projekt Alcatraz Java RMI / Spread - Gruppe A4.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
1 Ein kurzer Sprung in die tiefe Vergangenheit der Erde.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
Cooperation unlimited © Zühlke August 2008 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
States in the development of a new service During the development a service will pass through a chain of stages determining the service.
XML IV: Cocoon 2.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Real Time Operating System
Analyse von Ablaufdiagrammen
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Staatsballett Berlin Ein Verbesserungskonzept für den Social- Media Auftritt Your picture here.
Travelling Salesman Problem (TSP)
Design Patterns Ein Muster (pattern) ist eine Idee, die sich in einem praktischen Kontext als nützlich erwiesen hat und dies auch in anderen sein wird.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Objectives Verstehen was unterDelegate verstanden wird
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner |
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
Beispielanwendung von Java Threads
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Institute for Software Science – University of ViennaP.Brezany Parallele und verteilte Systeme Peter Brezany Institut für Softwarewissenschaften Universität.
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

Institute for Software Science – University of ViennaP.Brezany Parallele und verteilte Systeme Peter Brezany Institut für Softwarewissenschaften Universität Wien

Institute for Software Science – University of ViennaP.Brezany 2 Klassifikation paralleler und verteilter Systeme Für Rechensysteme mit mehreren CPU's gibt es die unterschiedlichsten Möglichkeiten der Organisation vor allem der Verbindungsstruktur. Für verteilte Systeme wurden unterschiedliche Klassifikationsschemata entwickelt, von denen sich jedoch keines allgemein durchsetzen konnte. Das wahrscheinlich am häufigsten angewendete Schema ist von Flynn (1972). Flynn unterscheidet zwei Merkmale: die Anzahl der Befehlsströme und die Anzahl der Datenströme. Damit ergeben sich die folgenden Klassen: SISD (Single Instruction Stream, Single Data Stream): Der Rechner hat einen Befehls- und einen Datenstrom. Alle herkömmlichen Einprozessorsysteme fallen unter diese Kategorie. SIMD (Single Instruction Stream, Multiple Data Stream): Hier werden mit einem einzigen Befehlsstrom gleichzeitig mehrere Datenströme verarbeitet. Hierbei handelt es sich um Prozessoren mit einer Befehlseinheit, die eine Anweisung holt und diese Anweisung dann auf mehrere Datenströme anwendet (z.B. sog. Feld, oder Vektorrechner, die eine Anweisung auf alle Komponenten eines Vektors anwenden). Einige Supercomputer gehören zu dieser Klasse. MSID (Multiple Instruction Stream, Single Data Stream): Hier würden mehrere Befehlsströme auf einen Datenstrom angewendet. Es gibt keine Rechner, die nach diesem Prinzip arbeiten. MIMD (Multiple Instruction Stream, Multiple Data Stream): Hier werden mehrere Befehlsströme parallel auf mehrere Datenströme angewendet. Zu dieser Klasse gehören alle verteilten Systeme, so dass diese Klassifikation für die Betrachtung unterschiedlicher Strukturen im Bereich der verteilten System wenig hilfreich ist.

Institute for Software Science – University of ViennaP.Brezany 3 Typische Monoprozessorarchitektur (SISD Architektur)

Institute for Software Science – University of ViennaP.Brezany 4 Feldprozessor (SIMD Architektur)

Institute for Software Science – University of ViennaP.Brezany 5 Schleifenparallelisierung für SIMDSs A typical scientific program spends approx. 90% of its execution time in loops. Example in Java: float A[1000], B[1000]; for (int i = 1; i < 1000; i++) { A[i-1] = B[i]; } The above loop can be expressed in Fortran 95 in the following way: A(0:998) = B(1:999) This statement can be directly mapped onto a SIMD processor. There is an initiative to extend Java by similar constructs.

Institute for Software Science – University of ViennaP.Brezany 6 Parallele Mehrprozessor-Hardware (MIMD Architekturen) Distributed-memory machines (DM Multiprocessors, DM MIMDS) –Each processor has local memory and disk –Communication via message-passing –Hard to program: explicit data distribution –Goal: minimize communication Shared-memory machines (SM Multiprocessors, SM MIMDs, SMPs) –Shared global address space and disk –Communication via shared memory variables –Ease of programming –Goal: maximize locality, minimize false sharing Current trend: Cluster of SMPs

Institute for Software Science – University of ViennaP.Brezany 7 Distributed Memory Architecture (Shared Nothing) Local Memory Local Memory Local Memory Local Memory CPU Interconnection Network CPU

Institute for Software Science – University of ViennaP.Brezany 8 DMM: Shared Disk Architecture Local Memory Local Memory Local Memory Local Memory CPU Interconnection Network Global Shared Disk Subsystem

Institute for Software Science – University of ViennaP.Brezany 9 Schleifenparallelisierung für DM MIMDs Example in Java: float A[10], B[10]; for (int i = 1; i < 10; i++) { A[i] = B[i-1]; } For two processors, P1 and P2, a straightforward solution would be:

Institute for Software Science – University of ViennaP.Brezany 10 Schleifenparallelisierung für DM MIMDs

Institute for Software Science – University of ViennaP.Brezany 11 Schleifenparallelisierung für DM MIMDs Code on P1: float A[5], B[5]; float temp; for (int i = 1; i < 6; i++) { if ( i == 5 ) { receive message from P2 into temp; A[i-1] = temp; { else A[i-1] = B[i]; } Code on P2: float A[5], B[5]; float temp; for (int i = 0; i < 5; i++) { if ( i == 0 ) { temp = B[0]; send temp to P1; { else A[i-1] = B[i]; }

Institute for Software Science – University of ViennaP.Brezany 12 Shared Memory Architecture (Shared Everything, SMP) CPU Interconnection Network CPU Global Shared Memory

Institute for Software Science – University of ViennaP.Brezany 13 Schleifenparallelisierung für SMPs Example in Java: float A[1000], B[1000]; for (int i = 1; i < 1000; i++) { A[i-1] = B[i]; } If we have, e.g. two processors, P1 and P2, a straightforward (non-optimal) solution would be: Code on P1: for (int i = 1; i < 500; i++) { A[i-1] = B[i]; } Code on P2: for (int i = 500; i < 1000; i++) { A[i-1] = B[i]; } Data elements of A and B are stored in the shared memory.

Institute for Software Science – University of ViennaP.Brezany 14 Cluster of SMPs CPU Interconnection Network CPU 4-CPU SMP CPU 4-CPU SMP CPU 4-CPU SMP CPU 4-CPU SMP

Institute for Software Science – University of ViennaP.Brezany 15

Institute for Software Science – University of ViennaP.Brezany 16 Abstraktes Maschinenmodell

Institute for Software Science – University of ViennaP.Brezany 17 Cluster von PCs

Institute for Software Science – University of ViennaP.Brezany 18

Institute for Software Science – University of ViennaP.Brezany 19 Pipeline No Pipeline

Institute for Software Science – University of ViennaP.Brezany 20 Towards Parallel Databases

Institute for Software Science – University of ViennaP.Brezany 21

Institute for Software Science – University of ViennaP.Brezany 22

Institute for Software Science – University of ViennaP.Brezany 23 A Step Towards Parallelization

Institute for Software Science – University of ViennaP.Brezany 24

Institute for Software Science – University of ViennaP.Brezany 25 Grid Idea

Institute for Software Science – University of ViennaP.Brezany 26 Eigenschaften verteilter Systeme In der Literatur finden sich verschiedene Definitionen verteilter Systeme, die teilweise unterschiedliche Aspekte beleuchten. Für die folgenden Betrachtungen soll von einer sehr allgemeinen Definition ausgegangen werden. Ein verteiltes System ist eine Sammlung voneinander unabhängiger Rechner, die dem Benutzer des Systems den Eindruck vermitteln, es handle sich um einen einzigen Rechner. Die Definition hat zwei Aspekte. Der erste Aspekt betrifft die Hardware und bedeutet, dass es sich um autonome Rechner handelt. Der zweite Aspekt betrifft die Software und legt fest, dass die Benutzer eine gemeinsame Schnittstelle sehen.

Institute for Software Science – University of ViennaP.Brezany 27 Vorteile verteilter Systeme gegenüber einem zentralen System Triebkraft der Dezentralisierung der Rechnersysteme waren in der Vergangenheit überwiegend wirtschaftliche und strategische Aspekte. Für zentrale Mainframe-Systeme (der Zeit vor den Mikroprozessoren) wurde von Herb Grosch das sog. "Grosche Gesetz" formuliert, das besagt, dass die Leistungsstärke einer CPU proportional zum Quadrat ihres Preises ist. Wenn doppelt soviel ausgegeben wird, erhält man die vierfache Leistung. Für die Mikroprozessoren trifft dieses Gesetz nicht mehr zu, da man für den doppelten Preis i. a. nur eine etwas höher getaktete CPU erhält. Meist ist es kostengünstiger, eine größere Anzahl billiger CPU's in einem System zu verbinden. Mit den heutigen Mikroprozessoren ist es möglich, ein System mit z.B Prozessoren aufzubauen und so eine Gesamtleistung zu erreichen, die von einem einzigen Prozessor nicht erreicht werden kann.

Institute for Software Science – University of ViennaP.Brezany 28 Vorteile verteilter Systeme (2) Beispiel –Ein Rechner mit CPU's, die jeweils 100 Mips leisten, hätte eine Gesamtleistung von Mips. Wenn ein einzelner Prozessor (ohne interne Parallelität) diese Leistung erbringen sollte, so müsste er eine Anweisung in 1 psec (1x sec) ausführen. Die maximale Ausbreitungsgeschwindigkeit von Signalen wird durch die Lichtgeschwindigkeit begrenzt und das ist 0,3 mm in 1 psec. Eine CPU mit einer Kantenlänge von 0,3 mm wurde bei dieser Taktrate eine so hohe Temperatur erzeugen, dass sie schmelzen würde. Ein weiterer Grund für die Entwicklung verteilter Systeme sind Anwendungsbereiche, die inhärent verteilt sind, wie z.B. Warenhausketten mit vielen Verkaufsstellen und mehreren Warenlagern, das Filialsystem von Banken oder die Zusammenarbeit verteilter Entwicklungsgruppen an einem Projekt.

Institute for Software Science – University of ViennaP.Brezany 29 Vorteile verteilter Systeme (3) Ein weiterer Vorteil eines verteilten Systems ist die gegenüber einem zentralen System gesteigerte Verfügbarkeit, z.B. bei einem Ausfall eines Rechners). Daneben ist schließlich die Möglichkeit des inkrementellen Wachstums ein weiterer Pluspunkt. Oft müssen Daten gemeinsam genutzt werden. So benötigen Reisebüros Zugriff auf Datenbanken für die Flugreservierung oder für Hotelbelegungen. Entwicklungsteams arbeiten auf gemeinsamen Projektdaten. Oft sollen nicht nur Daten sondern auch teuere Peripherie wie z.B. Farblaserdrucker oder große Archiv-Speichergeräte gemeinsam genutzt werden. Verteilte Systeme ermöglichen einen flexiblen Lastausgleich, falls rechenaufwendige Arbeiten verteilt werden können.

Institute for Software Science – University of ViennaP.Brezany 30 Nachteile verteilter Systeme und Lösungen Das verteilte System im Vergleich zu einem zentralisierten System zusätzliche Komplexität für den Anwendungsprogrammierer im Umgang bedeutet. Es ist wünschenswert, diese Komplexität zu verbergen - diese Eigenschaft wird in der Literatur als Transparenz bezeichnet. Transparenzkriterien: –Ortstransparenz: Sie ermöglicht den Zugriff auf eine Komponente ohne Wissen um ihre physische Lokation. –Zugriffstransparenz: Die Art und Weise, wie auf lokale und entfernte Komponenten zugegriffen wird, ist identisch. –Ausfalltransparenz: Der Ausfall einer Komponente ist für den Anwender transparent. –Technologie-Transparenz: Unterschiedliche Technologien, wie beispielsweise Programmiersprachen oder Betriebssysteme, werden vor dem Anwender verborgen. –Concurrency-Transparenz: Dem Anwender bleibt verborgen, dass er sich die Komponenten mit anderen Anwendern teilt.

Institute for Software Science – University of ViennaP.Brezany 31 Prozessstruktur eines vert. Systems Nachricht Prozess/ Rechner

Institute for Software Science – University of ViennaP.Brezany 32 Software-Konzepte Die Software ist in verteilten Systemen entscheidend dafür, wie sich das System an der Benutzerschnittstelle präsentiert. Prinzipiell können zwei Arten von Betriebssystemen für System mit mehreren CPU's unterschieden werden: Lose gekoppelte und eng gekoppelte Systeme. Lose gekoppelte Software ermöglicht es den Rechnern und den Anwendern eines verteilten Systems grundsätzlich unabhängig voneinander zu agieren und dennoch in dem notwendigen Maße zu interagieren. –Beispiel für ein solches System ist eine Gruppe von PC's (oder Workstations), die alle ihr eigenes BS haben, die aber über ein LAN miteinander verbunden sind und die z.B. gemeinsame Netzwerk-Drucker verwenden.

Institute for Software Science – University of ViennaP.Brezany 33 Software Konzepte (2) Bei eng gekoppelten Systemen soll z.B. auf allen CPU's an einer gemeinsamen Aufgabe gearbeitet werden, z.B. ein Schachprogramm, bei dem den CPU's jeweils die Auswertung einer Stellung zugewiesen wird. Wenn die Auswertung beendet ist, gibt der Knoten das Ergebnis zurück und erhält eine neue Stellung zugewiesen.

Institute for Software Science – University of ViennaP.Brezany 34 Aspekte der Kommunikation Das Client-Server-Modell ist eine Möglichkeit, ein verteiltes System zu organisieren. Im Gegensatz zu einem üblichen lokalen System, in dem Services häufig über Unterprogrammaufrufe zur Verfügung gestellt werden, baut das Client-Server-Modell explizit (und für die Anwendung nicht transparent) auf Nachrichten auf. Das Konzept des Remote Procedure Calls (RPC) ermöglicht es Programmen, Prozeduren aufzurufen, die auf anderen Rechnerknoten laufen. Wenn ein Prozess auf einem Rechnerknoten A eine Prozedur auf einem Rechnerknoten B aufruft, dann wird der Prozess auf A solange blockiert, bis die Prozedur auf Rechner B ausgeführt und das Ergebnis zurückgeliefert wurde. Die Probleme, die dabei berücksichtigt werden müssen, sind: Aufrufende und aufgerufene Prozedur laufen in getrennten Adressräumen ab. Parameter und Ergebnis müssen zwischen unterschiedlichen Rechnern übergeben werden.

Institute for Software Science – University of ViennaP.Brezany 35 Client/Server-Model Klient Server Klient Auftrag Antwort

Institute for Software Science – University of ViennaP.Brezany 36 RPC Local vs. remote procedure RPC is an extension of the same type of communication to programs running on different computers; there is still a single thread of execution and the transfer of data between the involved components.

Institute for Software Science – University of ViennaP.Brezany 37 RPC (2) Abbildung 2: Ablauf eines RPC-Aufrufs

Institute for Software Science – University of ViennaP.Brezany 38 RPC (3)

Institute for Software Science – University of ViennaP.Brezany 39 Architektur eines verteilten Systems