p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1
|
|
- Ludo Lehmann
- vor 6 Jahren
- Abrufe
Transkript
1 Massivparallele Modelle und Architekturen Wintersemester 2010/2011 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n Eingangswerten ohne Vergleich des ersten und letzten Elements im odd-schritt. Für die Bestimmung des Parallelitätsgrades q(t) seien hier die Vergleicher (Operationen) maßgeblich. Nehmen Sie weiterhin an, Sie haben beliebig viele Ressourcen (Vergleicher) zur Verfügung und es fallen keine zusätzlichen Operationen für Kommunikation, Synchronisation oder Organisation an. a) Zeichnen Sie ein Parallelitätsprofil für n=8. b) Bestimmen Sie allgemein für gerade n die folgenden Größen: den Parallelitätsindex I das Maß für die geleistete Arbeit Work(p) das Maß für die Kosten Cost(p) die Auslastung U(p) den maximalen Speedup S max gegenüber einer sequentiellen Ausführung mit einem einzigen Vergleicher. c) Sei wieder n=8. Wie hoch wäre der Speedup, wenn genau zwei Vergleicher zur Verfügung stünden? Bestimmen Sie U(2). mit (p max = p) a) p Fachgebiet Rechnerarchitektur Prof. R. Hoffmann p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% b) In jedem even-schritt werden n/2 Vergleicher benötigt, in jedem odd-schritt (n/2)-1. Da es gleich viele even-schritte wie odd-schritte gibt, beträgt der Parallelitätsindex I = (n/2 + n/2-1)/2 = (n-1)/2. Alternativ kann man auch zunächst T und Work bestimmen: es werden n/2 even-schritte, sowie n/2 odd- Schritte benötigt. Daher folgt T = n/2 + n/2 = n. Die Herleitung von Work erfolgt wie oben die Herleitung von I: Anzahl der benötigten Vergleicher für even und für odd mal der Anzahl der Schritte, d. h. Work = ((n/2)-1 + (n/2)) * n/2 = n(n-1)/2. I ergibt sich nun auch aus I = Work/T. Die maximale Anzahl der benötigten Ressourcen p max ergibt sich aus der Anzahl der im even-schritt benötigten Vergleicher: p max = n/2. Die Kosten betragen Cost = T * p max = n* n/2 = n 2 /2. T
2 2 Die Auslastung U(p max ) ist der Quotient I/p max = 2(n-1)/2n = (n- 1)/n. Für große n ist die Auslastung nahezu optimal. Der maximale relative Speedup (unter Verwendung des gleichen Algorithmus) ergibt sich aus dem Vergleich von T bei beliebig vielen Ressourcen und T 1 bei nur einem einzigen Vergleicher. T 1 entspricht der Gesamtzahl aller Vergleiche, also T 1 = Work(p max ). Daraus folgt S max = (n(n-1)/2)/n = (n-1)/ c) Für n=8 gilt: Stehen nur zwei Vergleicher zur Verfügung, kann nach folgendem Schema sortiert werden (Beachte, dass zusätzliche Operationen p für Kommunikation etc. hier vernachlässigt werden): 2 1 Es werden in jedem Zeitschritt beide Vergleicher benutzt. Nach sieben Schritten sind dann je zwei even- und zwei odd-phasen komplett durchlaufen (In der Zeichnung bedeuten rote Pfeile auf schattiertem Hintergrund einen Vergleich/Tausch im odd-schritt, schwarze Pfeile auf hellem Hintergrund einen Vergleich/Tausch im even- Schritt). Insgesamt werden 4 benötigt, also wiederholt sich diese Prozedur noch einmal. Nach 14 Zeitschritten ist die Sortierung abgeschlossen. Es ergibt sich für den Speedup S = 28/14 = 2. Außerdem: U(2) = 100%, da immer beide Vergleicher benutzt werden können. Zum Vergleich: bei beliebig vielen Ressourcen (4 Vergleicher werden benötigt) wären es S max = 3,5. T 2. Aufgabe: Amdahl s Gesetz Das folgende Schema illustriert den sequentiellen Ablauf eines Programms. Jedes Kästchen symbolisiert dabei einen unteilbaren Task. Vereinfacht wird angenommen, dass ein Task auf einem Prozessor genau eine Zeiteinheit benötigt. Die dunklen Kästchen stellen nicht parallelisierbare Tasks dar. Die hellen können parallelisiert werden. a) Wie groß ist der parallelisierbare Anteil g? b) Was ist nach Amdahl s Gesetz der maximale Speedup für p=, p=5, p=4, p=3 und p=2? Kann dieser Speedup tatsächlich erreicht werden? a) g = 15/20 = 75%. b) p = : S max = 1/f = 20/5 = 4 p = 5: S max = 1/(0,25+0,75/5) = 2,5 p = 4: S max = 1/(0,25+0,75/4) 2,29 p = 3: S max = 1/(0,25+0,75/3) = 2 p = 2: S max = 1/(0,25+0,75/2) = 1,6 Dieser Speedup kann nicht erreicht werden, da die parallelisierbaren Teile zum einen nicht teilbar und zum anderen zerpflückt (nicht zusammenhängend) sind, und somit nicht optimal auf die p Prozessoren verteilt
3 3 werden können. Amdahl s Gesetz stellt lediglich eine obere Schranke dar. Im Spezialfall für p = wird angenommen, dass der parallelisierbare Anteil auf 0 reduziert wird (unendlich viele Prozessoren erledigen die in unendlich kleine Teile zerlegten Tasks in unendlich kleiner Zeit). 3. Aufgabe: Additionsalgorithmus im PRAM Modell Gegeben Sei ein EREW-PRAM Algorithmus zur Addition von n Zahlen. Zunächst werden die n Zahlen gleich auf p Prozessoren verteilt, wo in einer lokalen Phase sequentiell die jeweilige Teilsumme gebildet wird. Danach wird per Reduktionsbaum in einer globalen Phase die Gesamtsumme gebildet. a) Erstellen Sie eine Tabelle für n = 256 und p = 1, 2, 4, 8, 16, 32, 64, 128, 256, mit den Werten für Work, Cost, Anzahl der Schritte T, Speedup und Effizienz. b) Geben Sie je eine allgemeine Formel für Cost und für T in Abhängigkeit von n und p an. Annahme: p = 2 i mit i N und n mod p = 0 (p ist eine Zweierpotenz und n lässt sich auf p ohne Rest aufteilen). c) Nehmen Sie nun an, p = n/log(n). Geben Sie die Laufzeitkomplexität des Algorithmus an. a) und b) p allgemein log(p) Work n T n/p-1+log(p) Cost n-p+p*log(p) Speedup T seq /T 1 2,0 3,9 7,5 13,4 21,3 28,3 31,9 31,9 Effizienz Speedup/p 1 1,00 0,98 0,94 0,84 0,66 0,44 0,25 0,13 Utilization Work/Cost 1 1,00 0,98 0,94 0,84 0,66 0,44 0,25 0,13 Anmerkungen: Alle 9 Fälle sind Work-optimal, denn die Anzahl der Operationen ist immer gleich der Zeitkomplexität O(T seq ), bzw. der Anzahl der Operationen des (besten) sequentiellen Algorithmus. Aus diesem Grund sind auch die Werte für Effizienz und Utilization in allen Fällen gleich. Alle Fälle sind ebenfalls Work-time-optimal, denn es gibt keinen anderen Work-optimalen Algorithmus mit gleicher Anzahl p, der schneller ist. Die Beweise dafür sind hier nicht aufgeführt. c) Die Laufzeit des Algorithmus ist gegeben durch T = n/p 1 + log(p). p wird ersetzt: T = n/(n/log(n)) log(n/log(n)) = log(n) log(n) - log(log(n)) = 2log(n) log(log(n)) Für große n nähert sich die Laufzeit 2log(n) an. Damit liegt die Laufzeitkomplexität des Algorithmus in O(log(n)).
4 4 4. Aufgabe: Data Broadcasting im PRAM Modell Der folgende Code beschreibt einen Algorithmus für Data Broadcasting, d. h. der Wert einer Zelle (eines Prozessors) wird an alle anderen Prozessoren gesendet. Wenn n eine Zweierpotenz ist, werden n/2 Prozessoren (zum Senden bzw. Empfangen) benötigt. for t = 0 to log 2 n 1 do parallel [i = t -1] // active B[i+ 2 t ] B[i] // proc(i) writes endfor // in den Vorlesungsfolien steht anstelle von n P, besser n verwenden Erweitern Sie den Code so, dass er auch für n funktioniert, das keine Zweierpotenz darstellt. Es muss lediglich eine Bedingung eingefügt werden, die verhindert, dass im letzten Schritt versucht wird, an Adressen zu schreiben, die es nicht gibt: for t = 0 to log 2 n 1 do parallel [i = t -1] // active if (i + 2 t < n) B[i + 2 t ] B[i] // proc(i) writes endfor 5. Aufgabe: Maximum mit CRCW-PRAM Es soll ein CRCW-PRAM Algorithmus entwickelt werden, der mit n 2 Prozessoren, die auf einen gemeinsamen Speicher mit der Common-Regel schreiben, das Maximum von n Zahlen in linearer Zeit O(1) ermittelt. Die einzelnen Prozessoren seien in einer n n-matrix angeordnet und können wie folgt programmiert werden: parallel [i = 0... n-1][j = 0... n-1] do something Input ist der Array A vom Typ Zahl (z.b. int oder float) der Länge n, Output ist die Zahl max. Es steht zusätzlich ein Hilfsarray temp vom Typ boolean der Länge n zur Verfügung. a) Ergänzen Sie den folgenden Programmcode. Input: A[0... n-1] Output: max temp[i] true
5 5 b) Bestimmen Sie zunächst die Werte für Work, Cost, Speedup und Effizienz und ordnen Sie sie dann Komplexitätsklassen zu. c) Würde Ihr Algorithmus auch mit der Arbitrary- oder Priority-Regel funktionieren? a) Die Idee ist, dass in der Prozessor-Matrix gleichzeitig jeder Wert aus A mit jedem anderen verglichen werden kann. Prozessor [i][j] vergleicht A[i] mit A[j]. Immer wenn das Element A[i] kleiner ist als A[j], wird das entsprechende Flag temp[i] im Hilfsarray auf false gesetzt. Das bewirkt, dass nach allen Vergleichen, nur ein einziger Wert in diesem Array noch true ist, nämlich der, der keinen einzigen Größenvergleich verloren hat. Im letzten Schritt muss nur noch das so erhaltene Maximum ausgegeben werden. Input: A[0... n-1] Output: max temp[i] true parallel [i = 0... n-1] [j = 0... n-1] if (A[i] < A[j]) temp[i] false if (temp[i]) max A[i] Insgesamt werden konstant (unabhängig von n) T=3 Zeitschritte benötigt. Deshalb liegt die Laufzeitkomplexität in O(1). b) Die Kosten ergeben sich aus der Anzahl der Prozessoren die in irgendeinem Schritt maximal benötigt werden (n 2 im zweiten Parallelschritt) und der Laufzeit T: Cost = T * p = 3 * n 2. Die Kostenkomplexität ist also in O(n 2 ). Die Arbeit ergibt sich aus den tatsächlich genutzten Ressourcen: n Prozessoren im ersten Schritt. n 2 Prozessoren im zweiten Schritt und n Prozessoren im dritten Schritt. Work = 2n + n 2. Die Komplexitätsklasse ist O(n 2 ). Anmerkung: Dieser Algorithmus ist nicht Work-optimal, denn die Anzahl der Schritte des (besten) sequentiellen Algorithmus beträgt T seq = n-1 bzw. dessen Laufzeitkomplexität O(n). Der schnellste sequentielle Algorithmus bräuchte T seq = n-1 Schritte. Der Speedup ergibt sich nun aus dem Quotienten von T seq und T: Speedup = (n-1) / 3. Komplexitätsklasse O(n). Die Effizienz ist der Quotient aus Speedup und der Anzahl der Prozessoren: Effizienz = (n - 1) / (3 * n 2 ). Das liegt in der Komplexitätsklasse O(1/n). Ein weiterer Wert ist die Utilization. Sie ist der Quotient aus Work und Cost: Utilization = (2n + n 2 ) / (3 * n 2 ) = 2 / 3n + 1. Dies führt zur Komplexitätsklasse O(1/n). c) Ja. Auch mit den Konfliktregeln Arbitrary und Priority würde der Algorithmus funktionieren. Grund: Wenn alle Prozessoren bei jedem Schreibkonflikt immer den gleichen Wert schreiben (Common-Regel), dann spielt es keine Rolle, welcher zufällig oder priorisiert ausgewählt wird.
3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrGrundlagen der Programmierung 2. Parallele Verarbeitung
Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,
MehrLaufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrSkript zur Vorlesung Parallele Algorithmen. Andreas Goerdt Technische Universität Chemnitz Fakultät Informatik Theoretische Informatik
Skript zur Vorlesung Parallele Algorithmen Andreas Goerdt Technische Universität Chemnitz Fakultät Informatik Theoretische Informatik Wintersemester 1994 Das Skript ist eine etwas breiter dargestellte
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrParallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität
Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
MehrSortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
MehrKurs: Parallele Algorithmen (01824) Datum: Oktober 2011 Prüfer: Prof. Verbeek Dauer: 30 Minuten Art: Leistungsnachweis (unbenotet, bestanden)
Kurs: Parallele Algorithmen (01824) Datum: Oktober 2011 Prüfer: Prof. Verbeek Dauer: 30 Minuten Art: Leistungsnachweis (unbenotet, bestanden) Professor Verbeek ist ein angenehmer Prüfer, der mehr an einem
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrSOI 2013. Die Schweizer Informatikolympiade
SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen
MehrGrundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen -
Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen - 2) Algorithmenanalyse Prof. Dr. Anja Schanzenberger FH Augsburg, Fakultät für Informatik Kontakt: anja.schanzenberger@hs-augsburg.de
MehrProgrammierung Paralleler Prozesse
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
MehrGrundlagen der Parallelisierung
Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrNoch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
MehrNutzung paralleler Prozesse bei der Umweltsimulation
Nutzung paralleler Prozesse bei der Umweltsimulation RALF Wieland rwieland@zalf.de ZALF/LSA Nutzung paralleler Prozesse bei der Umweltsimulation p. 1 Warum parallele Prozesse? Die Steigerung der Taktfrequenz
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrSortieren. Eine Testmenge erstellen
Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrEinfache 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"
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrCodes und Informationsgehalt
Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf
MehrApproximationsalgorithmen
Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert
MehrWave-Datei-Analyse via FFT
Wave-Datei-Analyse via FFT Wave-Dateien enthalten gesampelte Daten, die in bestimmten Zeitabständen gespeichert wurden. Eine Fourier-Transformation über diesen Daten verrät das Frequenz-Spektrum der zugrunde
MehrArchitektur Verteilter Systeme Teil 2: Prozesse und Threads
Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =
MehrZahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär
Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten
MehrMethoden zum Lösen von Rekursionsgleichungen
Rekursionsgleichungen... Slide 1 Methoden zum Lösen von Rekursionsgleichungen Bisher wurde Expandieren der Rekursion + Raten der Gesetzmäßigkeit benutzt, um einfache Rekursionsgleichungen zu lösen. Zum
MehrTutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 12 (8. Juli 12. Juli 2013)
Technische Universität München Lehrstuhl Informatik VIII Prof. Dr.-Ing. Georg Carle Dipl.-Ing. Stephan Günther, M.Sc. Nadine Herold, M.Sc. Dipl.-Inf. Stephan Posselt Tutorübung zur Vorlesung Grundlagen
Mehr1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
MehrKurs 1575, Musterlösung zur Winter Klausur 2003/04
Kurs 1575, Musterlösung zur Klausur im Wintersemester 2003/04 1 Kurs 1575, Musterlösung zur Winter Klausur 2003/04 Aufgabe 1: Römische Zahlen Wer kennt das Problem nicht: Sie stehen vor einer Inschrift,
MehrAutor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
Mehr3 Rechnen und Schaltnetze
3 Rechnen und Schaltnetze Arithmetik, Logik, Register Taschenrechner rste Prozessoren (z.b. Intel 4004) waren für reine Rechenaufgaben ausgelegt 4 4-Bit Register 4-Bit Datenbus 4 Kbyte Speicher 60000 Befehle/s
MehrHOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.
HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis
MehrFerienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher stefan@buettcher.org
Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme Faktorisierung Stefan Büttcher stefan@buettcher.org 1 Definition. (RSA-Problem) Gegeben: Ò ÔÕ, ein RSA-Modul mit unbekannten Primfaktoren
MehrApproximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling
Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrMathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens
Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
Mehr9 Multithreading. 1 Idee des Multithreading
9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed
MehrTag 9: Datenstrukturen
Tag 9: Datenstrukturen A) Datenstrukturen B) Cell Arrays C) Anwendungsbeispiel: Stimulation in einem psychophysikalischen Experiment A) Datenstrukturen Wenn man komplizierte Datenmengen verwalten möchte,
MehrParallele Programmierung
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
MehrBinäre lineare Optimierung mit K*BMDs p.1/42
Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre
Mehr3. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
MehrParallele Berechnungen
Kapitel 7 Parallele Berechnungen 7.1 Teile und Herrsche (Divide and Conquer) Diese Entwurfsmethode für Algorithmen ist in vielen Bereichen nützlich und lässt sich folgendermaßen beschreiben: Teile das
MehrJetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.
Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens
MehrMotivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.
bei TMs bei Computern Formale Grundlagen der Informatik 1 Kapitel 10 Frank Heitmann heitmann@informatik.uni-hamburg.de Bisher haben wir mit TMs Probleme gelöst/entschieden/berechnet. Dabei war entscheidbar
MehrAnleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome
Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2
MehrLenstras Algorithmus für Faktorisierung
Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit
MehrParallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke, 2013-05-08
Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-05-08 Aufräumen Ressourcen in umgekehrter Abhängigkeitsreihenfolge freigeben Objekte haben Reference-Count (RC), initial 1 clrelease
MehrFunktionale GUI-Programmierung in Haskell mit Grapefruit
Funktionale GUI-Programmierung in Haskell mit Grapefruit Brandenburgische Technische Universität Cottbus Lehrstuhl Programmiersprachen und Compilerbau Haskell in Leipzig 2, Juli 2007 GUI-Programmierung
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrGrundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
MehrProzesse und Scheduling
Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen
MehrEmbedded OS für ARM Cortex Microcontroller
Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch
MehrSteuerung der Rollläden
Steuerung der Rollläden Die automatischen Rollläden verbessen nicht nur den Komfort sondern auch senken die Betriebskosten des Gebäudes. Die gut geplante Steuerung der Rollläden beeinflusst verschiedene
MehrReihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03
Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen
MehrAufgabenstellung und Zielsetzung
Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces
MehrÜ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
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe
MehrDas Prinzip an einem alltäglichen Beispiel
3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und
MehrAlgorithmen & 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
MehrSysteme 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
MehrWirtschaftsinformatik I
Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation
MehrCodierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
MehrKurs 1612 Konzepte imperativer Programmierung Kurs 1613 Einführung in die imperative Programmierung
Aufgaben Aufgabe 1 Schreiben Sie eine PASCAL-Prozedur transponierematrix, die als Parameter eine quadratische Matrix von integer-werten erhält und diese Matrix transponiert, also die Zeilen und Spalten
MehrPraktikum Diskrete Optimierung (Teil 11) 17.07.2006 1
Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu
MehrAlgorithms & Datastructures Midterm Test 1
Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar
MehrPerzentile mit Hadoop ermitteln
Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile
MehrDatentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrDesign and Implementation of a Soft-error Resilient OSEK Real-time Operating System
Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System Florian Lukas Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich Alexander Universität Erlangen
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
MehrTransparente Nutzung von Multi-GPU Cluster unter Java/OpenMP
Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Dipl. Inf. Thorsten Blaß Programming Systems Group Martensstraße 3 91058 Erlangen Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrObjektorientierte Programmiersprachen
Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht
MehrJava Einführung Operatoren Kapitel 2 und 3
Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
Mehr22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet
22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart
MehrMAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben.
Struktogramme 02.10.2002 Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. MAX_DOZ1 Integer a, b, c, max M AX IM U M 1.S T R Inte g er a, b, c Ausgabe "Zahlen eingeben" E ing abe a, b, c
MehrAnwendungen der Wirtschaftsmathematik und deren Einsatz im Schulunterricht
Anwendungen der Wirtschaftsmathematik und deren Einsatz im Schulunterricht Beispiele wirtschaftsmathematischer Modellierung Lehrerfortbildung, Speyer, Juni 2004-1- Beispiele wirtschaftsmathematischer Modellierung
MehrAufbau eines VR-Systems zur multimodalen Interaktion mit komplexen physikalischen Modellen
Fazit Aufbau eines s zur multimodalen Interaktion mit komplexen physikalischen Modellen Guido Rasmus Maximilian Klein, Franz-Erich Wolter Leibniz Universität Hannover Institut für Mensch-Maschine-Kommunikation
MehrAlgorithmen zur Integer-Multiplikation
Algorithmen zur Integer-Multiplikation Multiplikation zweier n-bit Zahlen ist zurückführbar auf wiederholte bedingte Additionen und Schiebeoperationen (in einfachen Prozessoren wird daher oft auf Multiplizierwerke
MehrIT-Sicherheit Kapitel 3 Public Key Kryptographie
IT-Sicherheit Kapitel 3 Public Key Kryptographie Dr. Christian Rathgeb Sommersemester 2013 1 Einführung In der symmetrischen Kryptographie verwenden Sender und Empfänger den selben Schlüssel die Teilnehmer
Mehr