Parallele Programmierung

Ähnliche Dokumente
Kurzanleitung zu. von Daniel Jettka

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Einführung in Subversion

Versionsverwaltung mit SVN

Einfu hrung in Subversion mit TortoiseSVN

Informatik 1 Tutorial

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Anleitung zur Registrierung von MSDNAA (DreamSpark) und Erwerb der Microsoft Produkte

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

Übung: Verwendung von Java-Threads

Informatik I Tutorial

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

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Professionelle Seminare im Bereich MS-Office

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Sourcecodeverwaltung

Hinweise zum Ausfüllen der Zeiterfassung

Anleitung Grundsetup C3 Mail & SMS Gateway V

Die Dateiablage Der Weg zur Dateiablage

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

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

SJ OFFICE - Update 3.0

Übungen Workflow Management. Blatt 2

Guide DynDNS und Portforwarding

Software Engineering in der Praxis

Einrichtung des WS_FTP95 LE

Lokale Installation von DotNetNuke 4 ohne IIS

Software Qualität Übung 1

Erstellen einer digitalen Signatur für Adobe-Formulare

PROJEKTVERZEICHNIS EINRICHTEN

DOKUMENTATION VOGELZUCHT 2015 PLUS

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Updatehinweise für die Version forma 5.5.5

RIS Abbild mit aktuellen Updates

Wie benutzt man TortoiseSVN

Übung - Datensicherung und Wiederherstellung in Windows 7

Support-Tipp Mai Release Management in Altium Designer

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

WinVetpro im Betriebsmodus Laptop

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Leichte-Sprache-Bilder

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

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

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Die Projek*ools. Files, Git, Tickets & Time

Der Tag hat 24 Stunden. Bitte schreibt in die linke Spalte alles auf, was ihr gestern getan habt und euch noch einfällt: War es ein stressiger

Öffnen und Hochladen von Dokumenten

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

So geht s Schritt-für-Schritt-Anleitung

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Informationen zur Verwendung von Visual Studio und cmake

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

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Anleitung zum Einspielen der Demodaten

Whitebox-Tests: Allgemeines

EMU Bill & Report 1/33

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!.

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Zimmertypen. Zimmertypen anlegen

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

HSR git und subversion HowTo

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

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Anwendungsbeispiele Buchhaltung

Online Newsletter III

A Lösungen zu Einführungsaufgaben zu QueueTraffic

Moodle-Kurzübersicht Kurse Sichern und Zurücksetzen

Anleitung Office 365 / ausführliche Version. Bestellungs- und Installationsanleitung für Office 365

Reporting Services und SharePoint 2010 Teil 1

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

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

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

teamsync Kurzanleitung

Anleitung - Archivierung

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

PCC Outlook Integration Installationsleitfaden

Brainloop Dox Häufig gestellte Fragen

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

FTP-Server einrichten mit automatischem Datenupload für

BSV Ludwigsburg Erstellung einer neuen Internetseite

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Lineare Gleichungssysteme

Installation OMNIKEY 3121 USB

SFTP SCP - Synology Wiki

Ablauf Vorstellungsgespräch

SharePoint-Migration.docx

36. SonntagsBlick Langlaufplausch 2015 Anleitung für eine Gruppenanmeldung

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Transkript:

Parallele Programmierung Serie 2 Cebulla Alexander, Maciej Zbigniew Besta, Mueller Urs, Florian Negele, Pravin Shinde, Roth Renzo, Huber Sandro, Severin Heiniger, Stuecklberger Christian, Gehr Timon, Michel Werder, Severin Wischmann

Übersicht Amdahl, Work/Span & DAG revisited Lösungen Übung 1 Übung 2: Sieb des Eratosthenes Visual Studio Tortoise SVN Fragen 2

3 Revisited Amdahl, Work/Span, DAG

Vergleich Amdahl & Work/Span Sunday, March 03, 2013 Parallel Programming 4

Vergleich Amdahl & Work/Span Amdahl: S n = T 1 T n = 1 s+ p n = 1 1 p + p n T n = s + p n = T 1 p + p n = s + (T 1 s) n Weil T 1 = s + p; Falls normiert: T 1 = 1 Work/Span: T n T + T 1 T n Was fällt auf? 5

Vergleich Amdahl & Work/Span Amdahl: S n = T 1 T n = 1 s+ p n = 1 1 p + p n T n = s + p n = T 1 p + p n = s + (T 1 s) n Weil T 1 = s + p; Falls normiert: T 1 = 1 Work/Span: T n T + T 1 T n Was fällt auf? Die obere Schranke für die Laufzeit gemäss work/span entspricht Amdahl s law, wenn s = T gilt. 6

Vergleich Amdahl & Work/Span Amdahl: T n = s + (T 1 s) n Work/Span: T 1 n T n Wo liegt der Zusammenhang? 7

Vergleich Amdahl & Work/Span Amdahl: T n = s + (T 1 s) n Work/Span: T 1 n T n Wo liegt der Zusammenhang? Die untere Schranke für die Laufzeit gemäss work/span lässt sich aus Amdahl s law herleiten, wenn man s = 0 (vollständige Parallelisierbarkeit) annimmt. 8

Vergleich Amdahl & Work/Span Sind Amdahl s law und work/span nun identisch? 9

Vergleich Amdahl & Work/Span Sind Amdahl s law und work/span nun identisch? Nein! Die Grössen s und T sind a priori nicht das Gleiche. Die Grösse s kann vom Programmierer relativ einfach abgeschätzt werden. Die Grösse T ist theoretisch und kann nicht gemessen oder einfach berechnet werden. 10

Vergleich Amdahl & Work/Span Amdahl geht davon aus, dass der Programmteil p beliebig auf Threads aufgeteilt werden kann. Dies ist ziemlich weit von der Realität entfernt. Amdahl s law liefert deswegen selten ein Resultat, dass einem realen Test standhält. Die Resultate der Work/Span-Analyse hingegen fallen wesentlich realistischer aus. Merke: Amdahl verwendet reale Daten und berechnet ein rein theoretisches Resultat. Work/Span verwendet theoretische Daten und berechnet ein «realistisches» Resultat. 11

DAG Wieviele parallele Threads? Einheiten insgesamt: Work =? Span =? 12

DAG 5 Threads Work = 18 Span = 9 13

Zusammenhang DAG & Work/Span Welche Grössen der Work/Span-Analyse sind schon wieder Work und Span? Work = 18 =? Span = 9 =? 14

Zusammenhang DAG & Work/Span Welche Grössen der Work/Span-Analyse sind schon wieder Work und Span? Work = 18 = T 1 Span = 9 = T 15

Zusammenhang DAG & Work/Span Work = T 1 Span = T Um eine Work/Span-Analyse durchzuführen hilft es also, das Programm als DAG zu sehen. 16

Zur Übersicht Work = T 1 = s+p Span = T Zusammenhang Amdahl & Work/Span: s sei T p sei T 1 - T 17

18 Lösungen Übung 1

Lösung Übung 1: Aufgabe 1 n JJJJ: p = n s = 1 p+s = n+1 Normieren: s+p = 1 s = 1 n+1 p = n n+1 T 1 T n = 1 1 p + p n = 1 n+1 1 n + n n+1 = n+1 2

Lösung Übung 1: Aufgabe 2 a. T 1 T n = 1 1 p + p n b. S n = T 1 T n = n : = 1 0.4 + 0.6 n 1 1 1 p + p = 0.4 + 0.6 n n 1 = 1 = 10 0.4 0.4 + 0.6 n Daher: S n 2.5 = 2 n = 6 4 = 2.5

Lösung Übung 1: Aufgabe 3 T n T 1 T + T n T 1 + T n Gegeben: T = 20% T 1 Gesucht: T 8_mmm S 8_mmm T n T 1 T n + T T 8 100% 20% + 20% = 30% 8 S 8_mmm = 100% = 10 30% 3

Lösung Übung 1: Aufgabe 4 T 1 T n = 1 s+ p n = 1 1 p + p n T 1 T n = 1 1 p + p 4 = 2 1 2 = 1 p + p 4 1 0.75p = 0.5 p = 2 3 Die Parallelisierbarkeit von 2 ist eine nur schwer zu 3 erfüllende Anforderung. Der Kauf des Uniprozessors würde für viele Anwendungen mehr Sinn machen. Beispiele folgen im Laufe des Semesters.

Lösung Übung 1: Aufgabe 5 Der Scheduler sei greedy (gierig), nicht «optimal». a. T n T 1 T n + T T 1 n + T b. T n T 1 + T n T min n + T min min n = 2T n c. Übung 1 T 1 T n n T 1 + T n = T 1 + ε T 1 = 1 + ε T 1 n n n wegen n T 1 T T T 1 T n 0

Unterschied zwischen «greedy» und «optimal» Scheduling Wenn das Programm aus Blöcken besteht (wie unten abgebildet), sind greedy und optimal synonym! Im allgemeinen Fall (ohne Block-uniforme Laufzeiten) ist greedy nicht immer optimal und optimal ist nicht immer greedy. optimal greedy Work/Span ist korrekt, wenn das Scheduling greedy abläuft. 24

Was ist heisst «greedy»? Greedy bedeutet gierig. Wenn immer möglich wird der Prozessor voll ausgelastet. Greedy kann man sich gut an einem Rückgeld-Automaten verbildlichen: Rückgeld Fr. 3.25: 1xFr.2.-, 1xFr.1.-, 1x Fr.0.20, 1x Fr. 0.05 Also: 3.25 = 2 + 1 + 0.2 + 0.05 Das ist greedy, weil immer die grösstmögliche Münze zurückgegeben wird. Münzsysteme sind so gewählt, dass greedy optimal ist. Optimal heisst hier, für den gegebenen Betrag, werden möglichst wenig Münzen verbraucht. 25

Was ist heisst «greedy»? Für ein Gegenbeispiel müssen wir unser Münzsystem ändern: Es gebe Fr 5.-, Fr. 4.-, Fr. 2.-, Fr. 1.- Rückgeld Fr. 8.- Greedy:? Optimal:? 26

Was ist heisst «greedy»? Für ein Gegenbeispiel müssen wir unser Münzsystem ändern: Es gebe Fr 5.-, Fr. 4.-, Fr. 2.-, Fr. 1.- Rückgeld Fr. 8.- Greedy: 8 = 5 + 2 + 1 (3 Münzen) Optimal: 8 = 4 + 4 (2 Münzen) 27

28 Vorbesprechung Übung 2

Serie 2: Primzahlberechnung Sequentielles C# Programm Basiert auf Sieb des Eratosthenes Optimierungen vorsehen Abgabe: Im Repository bis 7. März 29

Prinzip des Siebs 1 +i i i*i +i +i 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 i +i i*i 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 i 30

Optimierung i i*i +2i +2i 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 (i 1)/2 i*i +2i 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 i (i 1)/2 31

Einfaches Sieb Programm for (int i = 0; i < lim; i++) sieve[i] = false; for (int i = 2; i * i < lim; i++) if (!sieve[i]) for (int j = i * i; j < lim; j += i) sieve[j] = true; 32

33 Tools Visual Studio, Tortoise SVN

Tools Microsoft Visual Studio 2010/2012 Entwicklungsumgebung Verfügbar MSDN Academic Alliance program (MSDNAA) Via IDES: http://ides.ethz.ch/ Produkt MSDNAA ETH bestellen Email mit Zugangsdaten (DreamSpark, ) Vorinstalliert in Computerräumen CAB H 56 CAB H 57 Tortoise SVN Versionsverwaltung http://tortoisesvn.net/ 34

Visual Studio Neues Projekt 35

Visual Studio Konsolenapplikation Projektname Z.B. Primes 36

Versionsverwaltung Warum wird es verwendet? Übliche Arbeitsbedingungen Transparente Abgaben Einhalten des Abgabedatums Möglichkeiten Komplette Historie verfügbar Was wurde wann geändert? Beliebige Versionen wiederherstellen Änderungen einer Version rückgängig machen 37

Vokabular Checkout Lokale Kopie des Repositorys erstellen Im Kontextmenü eines Verzeichnisses: SVN Checkout Add Datei zur Versionsverwaltung hinzufügen Im Kontextmenü einer Datei: TortoiseSVN Add Check for Modifications Lokale Änderungen überprüfen Im Kontextmenü einer Datei: SVN Check for modifications Update Aktuelle Daten aus dem Repository herunterladen Im Kontextmenü einer Datei: SVN Update Commit Änderungen ins Repository übertragen Im Kontextmenü einer Datei: SVN Commit 38

Subversion Repositories Für Übungsabgaben Jeder Student hat Vollzugriff auf eigenen Ordner https://svn.inf.ethz.ch/svn/gutknecht/pp/<group>/<nethz id>/hwxy Letzter Commit vor Übungsstunde am Abgabedatum zählt Komplettes und kompilierbares Projekt einchecken Keine Binärdateien:.dll,.exe,.obj,.pdw (Insbesondere keine der Unterordner: bin, obj, debug, release) Für Beispiele und Lösungen: https://svn.inf.ethz.ch/svn/gutknecht/pp/shared/ Alle Studenten haben Lesezugriff 39

Feedback In der Übungsstunde Nachbesprechung vergangener Serien Ideen und typische Fehler Vorbesprechung der neuen Serie Aufgabenstellung Technische Details Unterlagen werden auf der Homepage publiziert Im SVN Repository Für jede einzelne Übung Assistent erstellt bei Korrektur eine Datei: feedback.txt 40

Fragen? 41