Grundlagen der Programmierung 2. Parallele Verarbeitung

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Programmierung 2. Parallele Verarbeitung"

Transkript

1 Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009

2 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit, Parallelität, Ressourcenverbrauch Parallelisierung von Algorithmen Amdahl-Gesetz Gustafson-Barsis Gesetz Beispielalgorithmen in Haskell Grundlagen der Programmierung 2-1 -

3 Nebenläufigkeit und Parallelität Prozesse und Kommunikation Prozess: eigenständig ablaufende Rechnung mit eigenem Speicher wie Rechner; kann interne Berechnungen und Ein-Ausgabe durchführen P,Q nebenläufig (concurrent) wenn diese unabhängig voneinander ausgeführt werden können. P,Q parallel, wenn sie nebenläufig sind und gleichzeitig ablaufen. Grundlagen der Programmierung 2-2 -

4 Klassifikation der parallelen Rechnerarchitekturen nach Flynn Bezüglich paralleler Instruktionssequenzen und Parallelität der Verarbeitung von Daten: SISD: Single instruction, single data stream (SISD): Sequentieller Rechner ohne Parallelität. MISD:Multiple instruction, single data stream: kommt so gut wie nicht vor: Man könnte redundante (Doppel-) Verarbeitung hier einordnen. SIMD: Single instruction, multiple data streams: Gleiche Verarbeitung. viele gleichartige Daten: z.b. Vektorprozessor. MIMD:Multiple instruction, multiple data streams: Mehrere Prozessoren lassen verschiedene Programme auf verschiedenen Daten ablaufen: Verteilte Systeme. Grundlagen der Programmierung 2-3 -

5 Parallele und verteilte Berechnungen PRAM: parallel random access machine Verteilte Berechnung, lose Kopplung massiv parallel, enge Kopplung Grid-Computing Cloud-Computing Vektorrechner, Feldrechner Pipelining Multi-Core-Prozessoren Grundlagen der Programmierung 2-4 -

6 PRAM: parallel random access machine Mehrere Prozesse (Prozessoren), gemeinsamer Hauptspeicher, unabhängiges Lesen und Schreiben Grundlagen der Programmierung 2-5 -

7 Verteilte Berechnungen, lose Kopplung Mehrere unabhängige Rechner kommunizieren über ein Netzwerk arbeiten gemeinsam an einer Berechnung Programme / Programmteile können völlig verschieden sein. Weitere Unterscheidung: Gleichberechtigte Rechner; oder hierarchisch (Master/ Slave) bzw. (Client / Server). Z.B. PVM: Parallel Virtual Machine Grundlagen der Programmierung 2-6 -

8 massiv parallel, enge Kopplung Viele unabhängige, gleiche Prozessoren Kopplung über ein schnelles Netzwerk arbeiten gemeinsam an einer Berechnung. I.a: Gleiches Programm, verschiedene Daten. Oft feste Topologie: Hyperwürfel, ähnliche Netzwerke, Z.B. Hardware für künstliche neuronale Netze. Grundlagen der Programmierung 2-7 -

9 Grid-Computing Viele Workstations/ PCs rechnen gemeinsam an einer Aufgabe verschiedene Hardware / Betriebssystem ist möglich I.a. : Rechner haben das gleiche Programm, aber verschiedene Daten Grundlagen der Programmierung 2-8 -

10 Vektorrechner Ein Programm steuert parallele Berechnungen auf HW-Arrays: Gleiche Prozedur, verschiedene Datenelemente Sinnvoller Einsatz: Wettersimulationen, numerische Berechnungen SIMD (single instruction, multiple data) Grundlagen der Programmierung 2-9 -

11 Pipelining I.a. parallele Ausführung von Maschinenkode auf der Hardware eines Prozessor Befehlsbearbeitung wird in kleinere Einheiten zerlegt, die dann nacheinander, versetzt abgearbeitet werden. Weitere Beschleunigung durch Mehrfachauslegung von internen Einheiten Grundlagen der Programmierung

12 Maße für den parallelen Ressourcenverbrauch Modell auf der Programmiersprachenebene: Auswertung durch einzelne Reduktionsschritte (z.b. Haskell) sequentieller Einzelschritt paralleler Einzelschritt = mehrere unabhängige, gleichzeitige Einzelschritte Grundlagen der Programmierung

13 Maße für den parallelen Ressourcenverbrauch Basis ist das PRAM-Modell: mehrere, nicht unterscheidbare Prozessoren gemeinsamer Hauptspeicher Befehlsabarbeitung ist synchron getaktet. pro Einzelschritt einer parallelen Auswertung ist ein Prozessor notwendig #parallele Reduktionsschritte = #paralleler Schritte bis zum Ergebnis #notwendige Prozessoren = maximale Anzahl gleichzeitiger sequentieller Einzelschritte in einem parallelen Schritt Grundlagen der Programmierung

14 Beispiel: Parallele Auswertung Skalarproduktberechnung: (a 1,..., a n ) (b 1,..., b n ) = a 1 b a n b n 1. Schritt: Werte die Produkte parallel aus 2. Schritt: Addiere die Ergebnisse Grundlagen der Programmierung

15 Parallele Reduktion; konservativ / spekulativ Die Parallelisierung ist konservativ, wenn nur Auswertungen durchgeführt werden, die für das Erreichen des Resultats notwendig sind. Die Parallelisierung ist spekulativ, wenn auch Reduktionen durchgeführt werden können, von denen zum Zeitpunkt der Ausführung nicht bekannt ist, ob diese für das Berechnen des Resultats notwendig sind. Grundlagen der Programmierung

16 Parallele Reduktion: Beispiel spekulativ: Die parallele Reduktion von s und t in if cond then s else t konservativ: Die parallele Reduktion von s und t in s * t Grundlagen der Programmierung

17 Parallele Reduktion: Maßzahlen Algorithmus sei gegeben, sei E die Eingabe, und p die Anzahl der erlaubten Prozessoren. τ(e, p) τ(e, 1) τ(e, ) minimale Anzahl der parallelen Reduktionsschritte bis zum Ergebnis, wenn man p unabhängige Reduktionsschritte gleichzeitig pro Schritt machen darf ist die Anzahl der Einzel-Reduktionsschritte bei sequentieller Auswertung. entspricht dann der Anzahl der parallelen Reduktionsschritte bis zum Ergebnis, wenn es keine obere Schranke für die Anzahl gleichzeitiger Reduktionen (#Prozessoren) gibt. Optimistische Erwartung: τ(e, p) τ(e, 1). p Grundlagen der Programmierung

18 Parallele Reduktion: Beschleunigung Vereinfachende Annahme im folgenden: die Kennzahlen hängen nur vom Algorithmus ab; proportional zur Eingabegröße E; D.h., für alle p: τ(e, p) = E τ(p); meist kann E gekürzt werden. (relative) parallele Beschleunigung := τ(1) τ(p) Die parallele Beschleunigung ist eine Zahl zwischen 1 und p 1, p, da man sequentiell reduzieren kann, da maximal p Prozessoren und man eine parallele Reduktion zu einem Ergebnis sequentiell nachvollziehen kann. Grundlagen der Programmierung

19 Parallele Reduktion: Beschleunigung maximale parallele Beschleunigung q := τ(1) τ( ) = lim p τ(1) τ(p). parallele Beschleunigung bei unbeschränkter Anzahl von Prozessoren. sequentieller Zeit-Anteil des Algorithmus := 1/q. Grundlagen der Programmierung

20 Parallele Reduktion: Effizienz parallele Effizienz := τ(1) p τ(p) = Anteil der für den Algorithmus nutzbaren gesamten Leistung aller Prozessoren Beispielhafte Zahlen: τ(1) τ(3) τ(4) Zeit Beschleunigung 1 2 2,5 Effizienz 1 66,6% 62,5% Grundlagen der Programmierung

21 Parallele Effizienz τ(1) p τ(p) ist eine Zahl zwischen 1 und 1/p. 1 optimal: alle Prozessoren tragen zur zur Berechnung bei 1/p schlecht: Berechnung ist im wesentlichen sequentiell Grundlagen der Programmierung

22 Amdahls Gesetz Begrenzung der parallelen Beschleunigung Amdahl-Annahmen zur Problemstruktur ( für alle Eingaben) T = T par + T seq Gesamtzeit T hat parallelen und sequentiellen Anteil Verhältnis T par T seq ist konstant. Beispiel map f xs Sequentieller Anteil: mindestens ein Listendurchlauf Grundlagen der Programmierung

23 Amdahls Gesetz (2) Beschleunigung durch p Prozessoren: T par + T seq (1/p) T par + T seq Bei unendlich vielen Prozessoren: Beschleunigung T par + T seq T seq Beispiel Wenn sequentieller Anteil = 5%, dann ist Beschleunigung maximal 20 Grundlagen der Programmierung

24 Gustafson-Barsis Gesetz Gustafson-Barsis-Annahme: T = T seq + p T p T T seq p T p Zeit für einen Prozessor fester sequentiellen Anteil, z.b. Initialisierung auf p Prozessoren verteilbare Berechnungszeit Mit α = T seq T p ergibt sich: Beschleunigung = T seq + p T p T seq + T p = α + p α + 1 Grundlagen der Programmierung

25 Gustafson-Barsis Gesetz: Beispiel Anwendung von f auf alle Elemente eines Arrays der Länge n a[1],..., a[n] f a[1],..., f a[n] T seq Initialisierungszeit T p Zeit zum Berechnen von f x. Wenn T seq = T p, dann Beschleunigung mit n Prozessoren = 1 + n 2 Grundlagen der Programmierung

26 Beispiele: Algorithmen und Parallelisierung in Haskell vereinfachtes Modell: wie könnte man in Haskell parallelisieren? unabhängige Transformationen können parallel durchgeführt werden. Annahme: beliebig viele Prozessoren Wir benutzen verzögerte Reduktion und Sharing bzw. let- Darstellung. Jede Transformation benötigt eine Zeiteinheit. Anzahl parallel mögliche Transformationen = Anzahl der Prozessoren Grundlagen der Programmierung

27 Beispiele quadratsumme 3 4 (3*3)+(4*4) Prozessoren; 3 Zeiteinheiten werden benötigt Grundlagen der Programmierung

28 Beispiel: Fakultät fakt 3 if 3 == 1 then 1 else 3*(fakt (3-1)) if False then 1 else 3*(if 2 == 1 then 1 else 2*(fakt (2-1) ) 3*(if False then 1 else 2*(if 1 == 1 then 1 else 1*(fakt (1-1))) 3*(2*(if True then 1 else 1*(if 0 == 1 then 1 else 1*(fakt0))) 3*(2*(1)) 3*(2) 6 7 parallele Auswertungsschritte bei 4 Prozessoren. Die parallele Zeit ist O(n). Mehr Prozessoren helfen nicht. Grundlagen der Programmierung

29 Beispiel: Fakultät Man kann (fakt n) in paralleler Zeit O(log(n)) berechnen: Idee: Benutze Divide-and-Conquer: n = ( (n/2) ) ( (n/2 + 1)... n ) usw. Grundlagen der Programmierung

30 Beispiel map quadrat [1..n]. Auswertungssequenz: map quadrat [1..n] 1: map quadrat [2..n] 1: 4: (map quadrat [3..n]) Benötigt O(n) parallele Schritte. Grundlagen der Programmierung

31 Summation von n Zahlen in einer Liste Zwei Algorithmen für Summe im Vergleich: sum [] = 0 sum (x:xs) = x+ (sum xs) Benötigt O(n) parallele Reduktionsschritte. Grundlagen der Programmierung

32 Summation von n Zahlen in einem balancierten binären Baum: data BBaum a = BBlatt a Bknoten (BBaum a) (BBaum a) sumbt (Bblatt x) = x sumbt (Bknoten bl br) = (sumbt bl) + (sumbt br) Bei Tiefe h: 2 (h + 1) parallele Schritte, d.h., log 2 (n) + 1. sehr gut für parallele Verarbeitung geeignet Grundlagen der Programmierung

33 Summation von n Zahlen in einem balancierten binären Baum mittels schnellem foldbt foldbt (+) 0 "(((1,2),3),(4,5))" --> foldbt (+) (foldbt (+) 0 "(4,5)") "((1,2),3)" --> foldbt (+) (foldbt (+) (foldbt (+) (foldbt (+) 0 "5") "4") "3")... --> 1+ (2+ (3+ (4+ 5)))) Die Problematik ist: Obwohl sich die foldbt exponentiell ausbreiten: Die Summe 1+ (2+ (3+ (4+ 5))) ist sequentiell D.h., man braucht mindestens O(n) parallele Schritte foldbt nicht geeignet zur Parallelisierung Grundlagen der Programmierung

34 Paralleles Sortieren von (verschiedenen) Zahlen Nachweis: Parallelisierung kann Sortieren beschleunigen. Merge-Sort: die zerlegten Listen sind parallel sortierbar. Aber: Mischen ist sequentiell, Zerlegen ebenfalls Man benötigt an parallelen Reduktionen 2 n + 2 (n/2) + 2 (n/4) +... = 4 n D.h. O(n). Grundlagen der Programmierung

35 Paralleles Sortieren Es gibt Parallelisierungen, die in O((log(n)) 2 ) laufen. Es gibt komplizierte Parallelisierungen, die laut Experten sogar nur O(log(n)) Zeit benötigen. Parallele Sortieralgorithmen: Sortiernetzwerke Grundlagen der Programmierung

36 Parallelisierung: Bemerkungen Divide-and-COnquer (Teile-und Herrsche) kann sehr gut parallelisierbare Algorithmen ergeben Aber nicht immer: Sequentielle optimierte Algorithmen (Scan) ergeben i.a. schlecht parallelisierbare Algorithmen Hand-Parallelisierung auf der Programmiersprachenebene: nur sehr spezielle Anwendungen Stete Beschleunigung der CPUs holt den Vorteil paralleler S.W.-Architekturen immer wieder ein Grundlagen der Programmierung

37 Parallelisierung: Bemerkungen Wo ist Parallelisierung aktuell lohnend? auf Prozessorebene implizit durch den Compiler Number Crunching: wie z.b. Wettervorhersage Grid Computing: viele gleichartige Daten, gleiches Programm Grundlagen der Programmierung

Parallele Berechnungen

Parallele 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

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen 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)

Mehr

Grundlagen der Parallelisierung

Grundlagen 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

Mehr

Grundlagen der Programmierung 2. Sortierverfahren

Grundlagen der Programmierung 2. Sortierverfahren Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge

Mehr

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v

Mehr

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

Ü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

Mehr

COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME

COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME D - CA - XIX - CC,M&SPC - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 19 COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME Sommersemester 2003 Leitung: Prof. Dr. Miroslaw

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 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

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

Mehr

Hardware-Architekturen

Hardware-Architekturen Kapitel 3 Hardware-Architekturen Hardware-Architekturen Architekturkategorien Mehrprozessorsysteme Begriffsbildungen g Verbindungsnetze Cluster, Constellation, Grid Abgrenzungen Beispiele 1 Fragestellungen

Mehr

Programmierung Paralleler Prozesse

Programmierung 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

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: 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

Mehr

Dialekte der Klimaforschung

Dialekte der Klimaforschung Dialekte der Klimaforschung Vom Fortran-Programm zum parallelen Programm Thomas Ludwig Inhalt Welche Dialekte werden transformiert? Welche Anforderungen stellen wir? Wozu diese Transformation? Wie ist

Mehr

Laufzeit und Komplexität

Laufzeit 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

Mehr

1 Konzepte der Parallelverarbeitung

1 Konzepte der Parallelverarbeitung Parallelverarbeitung Folie 1-1 1 Konzepte der Parallelverarbeitung Erhöhung der Rechenleistung verbesserte Prozessorarchitekturen mit immer höheren Taktraten Vektorrechner Multiprozessorsysteme (Rechner

Mehr

Gliederung Seite 1. Gliederung

Gliederung Seite 1. Gliederung Gliederung Seite 1 Gliederung 1. Klassifikationen...6 1.1. Klassifikation nach der Kopplung der rechnenden Einheiten...6 1.1.1. Enge Kopplung...6 1.1.2. Lose Kopplung...6 1.2. Klassifikation nach der Art

Mehr

Rekursive Auswertungsprozesse in Haskell

Rekursive Auswertungsprozesse in Haskell Rekursive Auswertungsprozesse in Haskell Auswertungsprozess, der durch eine rekursive Funktion bewirkt wird Beispiel: Auswertung der rekursiven Fakultätsfunktion 0! := 1 n! := n (n 1)! fakultaet x = if

Mehr

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen Kursversion WS: 10/11 02.2012 Kurs 1727 Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen Grundlagen Parallele Programmierung? Was

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Typdeklarationen. Es gibt in Haskell bereits primitive Typen:

Typdeklarationen. Es gibt in Haskell bereits primitive Typen: Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,

Mehr

Programmiertechnik II

Programmiertechnik 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

Nebenläufige Programmierung

Nebenläufige Programmierung Nebenläufige Programmierung Perspektiven der Informatik 27. Januar 2003 Gert Smolka Telefon-Szenario Eine Telefonzelle Mehrere Personen wollen telefonieren Immer nur eine Person kann telefonieren Ressource

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Ü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

Mehr

Computational Biology: Bioelektromagnetismus und Biomechanik

Computational Biology: Bioelektromagnetismus und Biomechanik Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (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

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren 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

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung 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

Mehr

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung: Syntaxbaum Ausgabeprogramm Starte mit Syntaxbaum: Darstellung des eingegebenen Programms Wähle Zielarchitektur Wähle abstrakte

Mehr

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff

Mehr

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: 1 Parallele Algorithmen Grundlagen Parallele Algorithmen Grundlagen Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: Dekomposition eines Problems in unabhängige Teilaufgaben.

Mehr

Programmierung von Multicore-Rechnern

Programmierung von Multicore-Rechnern Programmierung von Multicore-Rechnern Prof. Dr.-Ing. habil. Peter Sobe HTW Dresden, Fakultät Informatik/Mathematik www.informatik.htw-dresden.de Gliederung: Ein Blick auf Multicore-Prozessoren/ und -Rechner

Mehr

CONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier

CONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier CONCURRENCY MODELS Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm 1 AUTOVERKEHR 61.5 Millionen zugelassene Autos (Anfang 2014) Quelle: Statistisches Bundesamt 2 3 SPERRGRANULAT Die Zeit

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & 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

Mehr

Intel Threading Building Blocks (TBB)

Intel Threading Building Blocks (TBB) Intel Threading Building Blocks (TBB) Julius Adorf 26.10.2009 Seminar: Semantics of C++ TU München Tejas und Jayhawk? Intel Threading Building Blocks (TBB) Parallelisierung für C++ eine Bibliothek mittlerweile

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

Verkürzung von Entwurfszeiten

Verkürzung von Entwurfszeiten Verkürzung von Entwurfszeiten durch Matlab-basiertes HPC R. Fink, S. Pawletta Übersicht aktuelle Situation im ingenieurtechnischen Bereich Multi-SCEs als Konzept zur Verkürzung von Entwurfszeiten Realisierung

Mehr

BraLUG-Cluster Idee, Konzept und Umsetzung. Uwe Berger; 2005

BraLUG-Cluster Idee, Konzept und Umsetzung. Uwe Berger; 2005 <bergeruw@gmx.net> Idee, Konzept und Umsetzung ; 2005 Inhalt Die Idee Das Konzept Die Umsetzung PVM Hard-/Software Bootkonzept Clientanmeldung... und jetzt? 01/2005 2 Die Idee eine aussergewöhnliche und

Mehr

Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung

Adressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Scheduling Mechanisms for the Grid

Scheduling Mechanisms for the Grid Scheduling Mechanisms for the Grid Seminar Mechanismen in verteilten Netzen Xu,Yongchun und Zheng,Bin Betreuer: Bjoern Schnizler 1 Definition Grid-Computing Scheduling 2 Definition--Grid 3 Definition--Grid

Mehr

Parallelverarbeitung. Parallelverarbeitung. 2. Grundlagen. 2. Grundlagen. 2.1 Parallelität

Parallelverarbeitung. Parallelverarbeitung. 2. Grundlagen. 2. Grundlagen. 2.1 Parallelität 2. Grundlagen Parallelverarbeitung SS 2005 Inhalt Parallelität Ebenen der Parallelität Parallelrechnerarchitekturen Parallele Programmiermodelle 18.04.05 Roland Wismüller, Univ. Siegen roland.wismueller@uni-siegen.de

Mehr

ALP I. Funktionale Programmierung

ALP I. Funktionale Programmierung ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten

Mehr

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

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2.

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2. Cloud Computing Frank Hallas und Alexander Butiu Universität Erlangen Nürnberg, Lehrstuhl für Hardware/Software CoDesign Multicorearchitectures and Programming Seminar, Sommersemester 2013 1. Definition

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

6-1 A. Schwill Grundlagen der Programmierung II SS 2005 6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und

Mehr

Überblick. 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche

Überblick. 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche Überblick 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche c rk,wosch,jk VS (SS 2015) 2 Bestandsaufnahme 2 1 Prozessorfarm @Google c rk,wosch,jk

Mehr

Rechnerarchitektur SS 2014

Rechnerarchitektur SS 2014 Rechnerarchitektur SS 2014 Parallele Rechnersysteme Michael Engel TU Dortmund, Fakultät für Informatik Teilweise basierend auf Material von Gernot A. Fink und R. Yahyapour 3. Juni 2014 1/30 Mehrprozessorsysteme

Mehr

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

Mehr

PIWIN II. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II. Vorlesung 2 SWS SS 08

PIWIN II. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II. Vorlesung 2 SWS SS 08 PIWIN II Kap. 3: Verteilte Systeme & Rechnernetze 1 PIWIN II Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II Vorlesung 2 SWS SS 08 Fakultät für Informatik Technische

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

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)

Mehr

Neue Ansätze der Softwarequalitätssicherung

Neue Ansätze der Softwarequalitätssicherung Neue Ansätze der Softwarequalitätssicherung Googles MapReduce-Framework für verteilte Berechnungen am Beispiel von Apache Hadoop Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit:

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit: Vorlesung 5.5. VERBINDUNGSNETZWERKE Kommunikation zwischen den einzelnen Komponenten eines arallelrechners wird i.d.r. über ein Netzwerk organisiert. Dabei unterscheidet man zwei Klassen der Rechner: TOOLOGIE:

Mehr

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Einleitung Was ist Informatik? 5 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Programmierung 13 2 Vom Problem über den Algorithmus zum Programm 15 2.1 Vorgehensweise bei der

Mehr

Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation

Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation 1 Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation Dr. G. Wellein, Regionales Rechenzentrum Erlangen Supercomputer

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

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

Entscheidungsbä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

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Grundlagen der Programmierung 2 (1.C)

Grundlagen der Programmierung 2 (1.C) Grundlagen der Programmierung 2 (1.C) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 3. Mai 2006 Funktionen auf Listen: map map :: (a -> b) -> [a] -> [b] map f [] = []

Mehr

Parallelprogrammierung

Parallelprogrammierung Lesender: Prof. Dr.-Ing. habil Ilka Philippow Fakultät für Informatik und Automatisierung FG Softwaresysteme/Prozessinformatik email: ilka.philippow@tu-ilmenau.de Tel. 69 2826 Sekr. 69 2870, Frau Meusel,

Mehr

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1 IT für Führungskräfte Zentraleinheiten 11.04.2002 Gruppe 2 - CPU 1 CPU DAS TEAM CPU heißt Central Processing Unit! Björn Heppner (Folien 1-4, 15-20, Rollenspielpräsentation 1-4) Harald Grabner (Folien

Mehr

OpenCL Implementierung von OpenCV Funktionen

OpenCL Implementierung von OpenCV Funktionen Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL

Mehr

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Kai Diethelm GNS Gesellschaft für numerische Simulation mbh Braunschweig engineering software development Folie 1 Überblick Vorstellung

Mehr

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung

Mehr

Spark, Impala und Hadoop in der Kreditrisikoberechnung

Spark, Impala und Hadoop in der Kreditrisikoberechnung Spark, Impala und Hadoop in der Kreditrisikoberechnung Big Data In-Memory-Technologien für mittelgroße Datenmengen TDWI München, 22. Juni 2015 Joschka Kupilas, Data Scientist, Adastra GmbH 2 Inhalt Vorwort

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

Funktionale Programmierung

Funktionale Programmierung Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 2 Teil II Typen mit Werten und Ausdruck, sogar listenweise 3 Haskell Programme Programm Module ein

Mehr

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1 Ein kleiner Einblick in die Welt der Supercomputer Christian Krohn 07.12.2010 1 Vorschub: FLOPS Entwicklung der Supercomputer Funktionsweisen von Supercomputern Zukunftsvisionen 2 Ein Top10 Supercomputer

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

einfache Dokumentation des Programmentwurfs Nullstellen bestimmt reelle Nullstellen von und Problemklasse: Was sind die reellen Nullstellen der

einfache Dokumentation des Programmentwurfs Nullstellen bestimmt reelle Nullstellen von und Problemklasse: Was sind die reellen Nullstellen der C Grundlagen C.2 Programm C.2 Programm Programmierung Programmerstellung und -ausführung Organisation eines Rechners Klassischer Universalrechner Datendarstellung im Rechner Dateien Benutzerumgebung Programmierumgebung

Mehr

Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012

Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012 Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012 Matthias Bott 9. Januar 2012 2 VOM PC ZUM HPC 2 1 Movtivation Auf die Frage, wofür Computer in der Kernphysik benötigt werden, gibt es

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

MATCHING VON PRODUKTDATEN IN DER CLOUD

MATCHING VON PRODUKTDATEN IN DER CLOUD MATCHING VON PRODUKTDATEN IN DER CLOUD Dr. Andreas Thor Universität Leipzig 15.12.2011 Web Data Integration Workshop 2011 Cloud Computing 2 Cloud computing is using the internet to access someone else's

Mehr

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem?

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem? 1 Einleitung 1.1 Aufgaben und Grobstruktur Was ist ein Betriebssystem? Betriebssystem (Definition nach DIN 44300) Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Einführung Administratives Unterlagen Verwendbar: Master of Science (Informatik) Wahlpflichtfach (Theorie-Pool) Unterlagen Folien:

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

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

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Programmiersprachen: rekursives Programmieren in Haskell

Programmiersprachen: rekursives Programmieren in Haskell Kapitel 1 Programmiersprachen: rekursives Programmieren in Haskell Das generelle Ziel dieses Teils der Vorlesung ist das Verständnis von Programmierparadigmen, insbesondere rekursive Programmierung, funktionaler

Mehr

11.0 Rechnerarchitekturen

11.0 Rechnerarchitekturen 11.0 Rechnerarchitekturen Die Ziele dieses Kapitels sind: Kennen lernen der Rechnerklassifikation nach Flynn Betrachtung von Prozessorarchitekturen auf verschiedenen Abstraktionsebenen - Befehlsarchitektur

Mehr

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

Architektur paralleler Plattformen

Architektur paralleler Plattformen Architektur paralleler Plattformen Freie Universität Berlin Fachbereich Informatik Wintersemester 2012/2013 Proseminar Parallele Programmierung Mirco Semper, Marco Gester Datum: 31.10.12 Inhalt I. Überblick

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras 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

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

Was ist PretonSaverTM... 3 PretonSaver's... 3 PretonCoordinator... 3 PretonControl... 4 PretonSaver Client... 4 PretonSaver TM Key Funktionen...

Was ist PretonSaverTM... 3 PretonSaver's... 3 PretonCoordinator... 3 PretonControl... 4 PretonSaver Client... 4 PretonSaver TM Key Funktionen... PRETON TECHNOLOGY Was ist PretonSaverTM... 3 PretonSaver's... 3 PretonCoordinator... 3 PretonControl... 4 PretonSaver Client... 4 PretonSaver TM Key Funktionen... 4 System Architekturen:... 5 Citrix and

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

1. Einführung Das simply BATCH System ist ein automatisches Batchprogramm mit vollständiger Batch Dokumentation für kleine und mittlere Anwendungen. Mit dem simply BATCH System wird eine hohe, reproduzierbare

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binä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

Mehr

KryptoCore-Entwurf und Funktionale Programmierung

KryptoCore-Entwurf und Funktionale Programmierung KryptoCore-Entwurf und Funktionale Programmierung Tobias Häberlein und Matthias Brettschneider haeberlein@hs-albsig.de brettschneider@hs-albsig.de Hochschule Albstadt-Sigmaringen Studiengang Kommunikations-

Mehr