Parallelization and Generation of Mandelbrot fractal set on CELL BE

Größe: px
Ab Seite anzeigen:

Download "Parallelization and Generation of Mandelbrot fractal set on CELL BE"

Transkript

1 Hauptseminar Multicore Architectures and Programming Parallelization and Generation of Mandelbrot fractal set on CELL BE Philipp Kutzer, Hauke Stähle Betreuung: Hritam Dutta, Matthias Hartl, Frank Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philipp Kutzer, Hauke Stähle 1

2 Übersicht Fraktale und deren Bedeutung Die Mandelbrotmenge Parallelisierung Optimierung Ergebnisse Probleme Philipp Kutzer, Hauke Stähle 2

3 Fraktale und deren Bedeutung Fraktale dienen zur Beschreibung chaotischer Prozesse Einfache geometrische Modelle oftmals nicht ausreichend Wichtige Eigenschaft: Selbstähnlichkeit Anwendbarkeit z.b.: Wirtschaft Naturbeschreibung Philipp Kutzer, Hauke Stähle 3

4 Fraktale und deren Bedeutung Blumenkohl, Bakterienstamm, Schneeflocken Philipp Kutzer, Hauke Stähle 4

5 Fraktale und deren Bedeutung Börsenkurs Philipp Kutzer, Hauke Stähle 5

6 Die Mandelbrotmenge Teilmenge der komplexen Zahlen Definition: Alle komplexen Zahlen c, für welche z n1 =z n 2 c z 0 =0, z C beschränkt ist. Philipp Kutzer, Hauke Stähle 6

7 Die Mandelbrotmenge Darstellung in der komplexen Ebene: Philipp Kutzer, Hauke Stähle 7

8 Die Mandelbrotmenge Implementierung: uint32_t mandel_double(double cx, double cy, uint32_t max_iter) { uint32_t iter = 1; double x = 0, y = 0, xtemp = 0; double x2, y2; // z = x + y * img do { x2 = x * x; y2 = y * y; if( x2+y2 > MAX_VALUE ) return iter; xtemp = x2 - y2 + cx; y = 2 * x * y + cy; x = xtemp; iter++; } while ( iter <= max_iter ); } return 0; Philipp Kutzer, Hauke Stähle 8

9 Die Mandelbrotmenge Färbung entsprechend Iterationen: Philipp Kutzer, Hauke Stähle 9

10 Parallelisierung Punkte können unabhängig voneinander berechnet werden! Aufteilung der Rechenlast auf die SPUs Vertikale Aufteilung des Bildes PPU übernimmt Verwaltungsarbeit Zuteilung der Arbeitsaufträge Länge eines Arbeitsauftrages unbekannt Realisierung mit einer Ready/Busy-Queue Philipp Kutzer, Hauke Stähle 10

11 Parallelisierung SPUs bekommen Aufträge zugeteilt Signalisieren Auftragsende Warteschlangenkonzept Ready-Queue: SPUs, welche IDLE sind Busy-Queue: Arbeitende SPUs Arbeitsauftrag: typedef struct { uint32_t posy; uint32_t* framebuffer_addr; uint32_t framebuffer_width; double zoomx; double zoomy; double movex; double movey; uint32_t max_iter; } workload; Philipp Kutzer, Hauke Stähle 11

12 Optimierung Verzweigungen sind teuer! uint32_t mandel_double(double cx, double cy, uint32_t max_iter) { //Init do { //Calc x^2, y^2 if( x2+y2 > MAX_VALUE ) return iter; //Calc z+1 iter++; } while ( iter <= max_iter ); } return 0; Loop unrolling Branch prediction Philipp Kutzer, Hauke Stähle 12

13 Optimierung Loop unrolling: uint32_t mandel_double(double cx, double cy, uint32_t max_iter){ //Init double temp[4]; do { //Do 4 calculations, save result to temp[1-4] iter +=4; if(temp[3] > MAX_VALUE) { if ( temp[0] > MAX_VALUE ) { return iter-3; } if ( temp[1] > MAX_VALUE ) { return iter-2; } if ( temp[2] > MAX_VALUE ) { return iter-1; } } return iter; } while ( iter < max_iter ); result 0; } return result; Philipp Kutzer, Hauke Stähle 13

14 Optimierung Branch prediction: uint32_t mandel_double(double cx, double cy, uint32_t max_iter) { //Init do { //Calc x^2, y^2 if( builtin_expect( (x2+y2 > MAX_VALUE), 0 ) ) { return iter; } //Calc z+1 iter++; } while ( iter <= max_iter ); } return 0; Philipp Kutzer, Hauke Stähle 14

15 Optimierung Float vs. Double Float schnell, aber ungenau Double nur bei hohen Zoomstufen interessant Verwendung von zwei Implementierungen zur Punktberechnung Float-Genauigkeit bei kleinen Zoomstufen Double-Genauigkeit bei hohen Zoomstufen Philipp Kutzer, Hauke Stähle 15

16 Ergebnisse Abhängigkeit von Anzahl SPUs [FPS] Framebufferauflösung: 50 Frames Double Max. Value = Iterationen SPUs normal + loop unrolling + branch prediction + float/double 0,82 1,63 2,44 3,24 4,05 4,85 5,91 4,9 12,84 optimal 15,29 Doppelpuffer brachte keine Verbesserung, da Daten nicht weiterverarbeitet werden Philipp Kutzer, Hauke Stähle 16

17 Probleme SIMD Berechnung mehrerer Punkte parallel Abbruchzeitpunkte unterschiedlich Mehr if-anweisungen Keine Perfomanzsteigerung Ausnutzung zur schnelleren Berechnung eines Punktes [ x 2 y 2 ]=[ x y ] [ x y] Keine Perfomanzsteigerung Philipp Kutzer, Hauke Stähle 17

18 The END Danke für eure Aufmerksamkeit Demo!? Philipp Kutzer, Hauke Stähle 18

OpenCL (Cell B. E., PS3) Multicore Architectures and Programming

OpenCL (Cell B. E., PS3) Multicore Architectures and Programming OpenCL (Cell B. E., PS3) Multicore Architectures and Programming Apelt, Nicolas Zoellner, Christian Hardware-Software-Co-Design Universität Erlangen-Nürnberg Apelt, Nicolas Zoellner, Christian 1 Übersicht

Mehr

Computergrafik SS 2016 Oliver Vornberger. Vorlesung vom Kapitel 11: Fraktale

Computergrafik SS 2016 Oliver Vornberger. Vorlesung vom Kapitel 11: Fraktale Computergrafik SS 2016 Oliver Vornberger Vorlesung vom 03.05.2016 Kapitel 11: Fraktale 1 Selbstähnlichkeit 2 Koch'sche Schneeflocke a+(x-a) cos(60 ) - (y-b) sin(60 ) b+(y-b) cos(60 ) + (x-a) sin(60 ) a,b

Mehr

Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten

Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten Tobias Schwarzer, Michael Theil Hardware-Software-Co-Design Universität Erlangen-Nürnberg Tobias.Schwarzer@e-technik.uni-erlangen.de,

Mehr

CUDA. Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig. Hardware-Software-Co-Design Universität Erlangen-Nürnberg

CUDA. Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig. Hardware-Software-Co-Design Universität Erlangen-Nürnberg CUDA Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1 Übersicht Entwicklungsumgebung RSA-Faktorisierer

Mehr

PGI Accelerator Model

PGI Accelerator Model PGI Accelerator Model Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1 Übersicht Motivation

Mehr

1 Die Mandelbrotmenge

1 Die Mandelbrotmenge 1 Die Mandelbrotmenge In diesem Abschnitt wollen wir mathematische Aspekte der sogenannten Mandelbrotmenge beleuchten, die wir im Folgenden mit M bezeichnen wollen. 1 Ihr Name ist ihrem Entdecker Benoît

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15

Mehr

Testen und abstrakte Interpretation

Testen und abstrakte Interpretation E. Vorobev: Testen und abstrakte Interpretation 1 [20] Testen und abstrakte Interpretation Elena Vorobev Universität Bremen Fachbereich 3, Mathematik und Informatik Universität Bremen, Cartesium, 13.10.09

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Praktische Informatik I Der Imperative Kern Einführung Rekursion

Praktische Informatik I Der Imperative Kern Einführung Rekursion Praktische Informatik I Der Imperative Kern Einführung Rekursion Prof. Dr. Stefan Edelkamp Institut für Künstliche Intelligenz Technologie-Zentrum für Informatik und Informationstechnik (TZI) Am Fallturm

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen

Mehr

Seminar: Multi-Core Architectures and Programming

Seminar: Multi-Core Architectures and Programming Seminar: Multi-Core Architectures and Programming Parallelisierung des Viola-Jones Algorithmus auf Tilera Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Erste Versuche

Mehr

Quarto Solver. Mark Blacher

Quarto Solver. Mark Blacher Quarto Solver Mark Blacher Was ist Quarto deterministisches Zwei-Personen-Nullsummenspiel mit perfekter Information Spielbaum besteht aus 1,13409 10 27 Knoten 08.02.2018 Algorithm Engineering Lab 2 Codierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 28 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick: Variablenarten 2 Lokale Variablen 3 Lokale Variablen

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 05/03 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel

Mehr

Abbildung 11.1: Farnblatt

Abbildung 11.1: Farnblatt Kapitel 11 Fraktale 11.1 Selbstähnlichkeit Viele in der Natur vorkommende Strukturen weisen eine starke Selbstähnlichkeit auf. Beispiele sind Gebirgsformationen, Meeresküsten oder Pflanzenblätter. Solche

Mehr

Fraktale und Beispiele aus der Physik

Fraktale und Beispiele aus der Physik Fraktale und Beispiele aus der Physik Anschauung Warum beschäftigen Fraktale (auch) Naturwissenschaftler? kurze Wiederholung Konkretes Beispiel: Magnetpendel Das Experiment Mathematische Beschreibung Trajektorien

Mehr

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck RST-Labor WS06/07 GPGPU General Purpose Computation On Graphics Processing Units (Grafikkarten-Programmierung) Von: Marc Blunck Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme

Mehr

Überblick. Typanpassungen Iteration mit Schleifen Bedingte Anweisungen. Agile Softwareentwicklung Einfaches Ratespiel.

Überblick. Typanpassungen Iteration mit Schleifen Bedingte Anweisungen. Agile Softwareentwicklung Einfaches Ratespiel. Globalübung 2 Überblick Typanpassungen Iteration mit Schleifen Bedingte Anweisungen Agile Softwareentwicklung Einfaches Ratespiel Softwarefehler Überblick Typanpassungen Iteration mit Schleifen Bedingte

Mehr

Juliamengen und Mandelbrotmenge

Juliamengen und Mandelbrotmenge Xin Xu Florian Pausinger 18. Januar 2008 Inhaltsverzeichnis 1 Mathematische Grundlagen Komplexe Zahlen Über Iterationen und beschränkte Folgen 2 Quadratische Familie Bildbeispiele 3 Charakterisierung Über

Mehr

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012 October 29, 2012 Inhaltsverzeichnis 1 2 3 4 5 6 Motivation Motivation CUDA bietet extreme Leistung für parallelisierbare Programme Kompliziert zu programmieren, da multi-level parallel und explizit verwalteter

Mehr

Interaktive Visualisierung zeitabhängiger Volumendaten

Interaktive Visualisierung zeitabhängiger Volumendaten Interaktive Visualisierung zeitabhängiger Volumendaten Diplomarbeit von Dario Kardas graphische datenverarbeitung, universität erlangen-nürnberg Skalare Volumendaten Volumen besteht aus Schichtbildern

Mehr

Kapitel 5.5: Nichtlineare Rekursionen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 5.5: Nichtlineare Rekursionen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 5.5: Nichtlineare Rekursionen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 e H! e t u 2 Ankreuzliste für Übungsgruppen 1 4 3 7 5 5 6 6 9 10 8 2 2 10 3 5.3.3 Master-Theorem:

Mehr

Digital Image Interpolation with CUDA

Digital Image Interpolation with CUDA Digital Image Interpolation with CUDA Matthias Schwarz & Martin Rustler Hardware-Software-Co-Design Universität Erlangen-Nürnberg matthias.schwarz@e-technik.stud.uni-erlangen.de martin.rustler@e-technik.stud.uni-erlangen.de

Mehr

Parallelisierung auf CUDA

Parallelisierung auf CUDA Parallelisierung auf CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht RSA-Faktorisierung Image Flooding 2 RSA-Faktorisierung Erster Ansatz Implementierung des Pollard-Rho Algorithmus (sequentiell)

Mehr

Beispielvortrag: HPCG auf Intel Haswell-EP

Beispielvortrag: HPCG auf Intel Haswell-EP Beispielvortrag: HPCG auf Intel Haswell-EP Johannes Hofmann 1 Seminarvortrag Architekturen von Multi- und Vielkern-Prozessoren Erlangen, 19.4.2016 1 Computer Architecture, University Erlangen-Nuremberg

Mehr

Übung 1: Fraktale und Double Buffering

Übung 1: Fraktale und Double Buffering FHA: Graphische Datenverarbeitung Wintersemester 2002/03 Übung 1: Fraktale und Double Buffering René Müller 29. Oktober 2002 1 Einleitung 1.1 Folgen komplexer Zahlen Mandelbrot- und Julia-Mengen sind Objekte

Mehr

Von der Schönheit des mathematischen Chaos. Eine Einführung in Seltsame Attraktoren mit jreality

Von der Schönheit des mathematischen Chaos. Eine Einführung in Seltsame Attraktoren mit jreality Von der Schönheit des mathematischen Chaos Eine Einführung in Seltsame Attraktoren mit jreality Inhalt Physikalische Grundlagen Definition Eigenschaften Beispiele Implementierung Demonstration Physikalische

Mehr

10 Berechnungen aus der Elektrotechnik

10 Berechnungen aus der Elektrotechnik Eingabe R 0 T = -100, 100, 600 1 10 Berechnungen aus der Elektrotechnik 10.1 Temperaturverhalten metallischer Widerstände Der elektrische Widerstand aller Materialien ist mehr oder weniger stark von seiner

Mehr

Programmieren I. Kapitel 13. Listen

Programmieren I. Kapitel 13. Listen Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen

Mehr

Programmierwerkstatt. Objektorientierung und Korrektheit von Programmen

Programmierwerkstatt. Objektorientierung und Korrektheit von Programmen Programmierwerkstatt Objektorientierung und Korrektheit von Programmen Zum Inhalt Wir wollen Euch: das Wesentliche vermitteln Fehlerquellen verdeutlichen Verständnis ist uns wichtig programming by coincidence

Mehr

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 Dominik Weinrich dominik.weinrich@tu-dresden.de Dresden, 30.11.2017 Gliederung Motivation Aufbau und Hardware

Mehr

Computergrafik SS 2010 Oliver Vornberger. noch Kapitel 10: 2D-Grafik im Web. Vorlesung vom 11.05.2010

Computergrafik SS 2010 Oliver Vornberger. noch Kapitel 10: 2D-Grafik im Web. Vorlesung vom 11.05.2010 Computergrafik SS 2010 Oliver Vornberger noch Kapitel 10: 2D-Grafik im Web Vorlesung vom 11.05.2010 1 Webseite SVG-Beispiel

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

Softwaretechnik 1 Übung 5

Softwaretechnik 1 Übung 5 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 5 2.7.29 Aufgabe 1a) Zeichnen Sie die komplette Vererbungshierarchie der Klasse BufferedOutputStream als UML- Klassendiagramm.

Mehr

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Algorithmen und Datenstrukturen"

Algorithmen und Datenstrukturen Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen

Mehr

Algorithmen und Datenstrukturen"

Algorithmen und Datenstrukturen Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen

Mehr

Geometric Algebra Computing Rotationen in GA Dr. Dietmar Hildenbrand

Geometric Algebra Computing Rotationen in GA Dr. Dietmar Hildenbrand Geometric Algebra Computing Rotationen in GA 11.12.2014 Dr. Dietmar Hildenbrand Technische Universität Darmstadt Aufgaben 1. wie lautet der Rotor für eine Rotation um den Vektor (v1,v2,v3)? 2. numerische

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung

Mehr

ReduSoft Ltd. Kurzbeschreibungen zu einigen Modulen, die im Programm

ReduSoft Ltd.   Kurzbeschreibungen zu einigen Modulen, die im Programm ReduSoft Ltd. www.redusoft.de Kurzbeschreibungen zu einigen Modulen, die im Programm MathProf 5.0 unter dem Themenbereich Sonstiges implementiert sind. Schriftliche Addition, Subtraktion, Multiplikation,

Mehr

Cell and Larrabee Microarchitecture

Cell and Larrabee Microarchitecture Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen

Mehr

Fraktale. Mathe Fans an die Uni. Sommersemester 2009

Fraktale. Mathe Fans an die Uni. Sommersemester 2009 Fraktale Mathe Fans an die Uni Ein Fraktal ist ein Muster, das einen hohen Grad Selbstähnlichkeit aufweist. Das ist beispielsweise der Fall, wenn ein Objekt aus mehreren verkleinerten Kopien seiner selbst

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

Volumenrendering mit CUDA

Volumenrendering mit CUDA Volumenrendering mit CUDA Arbeitsgruppe Visualisierung und Computergrafik http://viscg.uni-muenster.de Überblick Volumenrendering allgemein Raycasting-Algorithmus Volumen-Raycasting mit CUDA Optimierung

Mehr

Untersuchungen zur effizienten Implementierung eines mathematischen Algorithmus in einem FPGA am Beispiel eines Sudoku-Lösers

Untersuchungen zur effizienten Implementierung eines mathematischen Algorithmus in einem FPGA am Beispiel eines Sudoku-Lösers Fakultät Informatik - Institut für Technische Informatik - Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Vortrag zum Diplom Untersuchungen zur effizienten Implementierung eines mathematischen

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

STATISTISCHE UNTERSTÜTZUNG BEI DER KREBSDIAGNOSTIK. Philipp Hermann & Milan Stehlik Institut für Angewandte Statistik

STATISTISCHE UNTERSTÜTZUNG BEI DER KREBSDIAGNOSTIK. Philipp Hermann & Milan Stehlik Institut für Angewandte Statistik STATISTISCHE UNTERSTÜTZUNG BEI DER KREBSDIAGNOSTIK Philipp Hermann & Milan Stehlik Institut für Angewandte Statistik Idee: Entwickelt zwischen 1980-2000 Prof. Mattfeldt ist mit folgendem Problem gekommen:

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Erklären

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

Seminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler

Seminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler Seminar Ausgewählte Komponenten von Betriebssystemen IDL4 Compiler IDL4 Compiler Hristo Pentchev Überblick CORBA IDL Allgemein IDL4 Compiler Beispiele CORBA Common Objekt Request Broker Architecture Gemeinsame

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

Seminar: Multi-Core Architectures and Programming. Viola-Jones Gesichtsdetektor

Seminar: Multi-Core Architectures and Programming. Viola-Jones Gesichtsdetektor Seminar: Multi-Core Architectures and Programming Viola-Jones Gesichtsdetektor Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Viola-Jones Gesichtsdetektor Aufbau Blockmerkmale

Mehr

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-

Mehr

FRAKTALE. Eine Dokumentation von Dominik Assmann, Philipp Gewessler und Paul Maier

FRAKTALE. Eine Dokumentation von Dominik Assmann, Philipp Gewessler und Paul Maier FRAKTALE Eine Dokumentation von Dominik Assmann, Philipp Gewessler und Paul Maier I. Fraktale allgemein a. Mathematischer Algorithmus i. Komplexe Zahlen b. Konvergieren und Divergieren i. Bei Mandelbrotmengen

Mehr

2. Fraktale Geometrie

2. Fraktale Geometrie 2. Fraktale Geometrie Komplexe Systeme ohne charakteristische Längenskala z.b. Risse in festen Materialien, Küstenlinien, Flussläufe und anderes.. Skaleninvariante Systeme Gebrochene Dimensionen Fraktale

Mehr

High-level software transformations

High-level software transformations 12 Peter Marwedel TU Dortmund Informatik 12 Germany Graphics: Alexandra Nolte, Gesine Marwedel, 2003 High-level software transformations Impact of memory allocation on efficiency Array p[j][k] Row major

Mehr

Theoretische Informatik SS 03 Übung 5

Theoretische Informatik SS 03 Übung 5 Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen

Mehr

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

Mehr

Radizieren mit dem Heron-Verfahren

Radizieren mit dem Heron-Verfahren Mathematik mit Python und OpenOffice Calc Radizieren mit dem Heron-Verfahren Matthias Richter. März 011 1 Idee Das Heron-Verfahren ist ein Algorithmus um die Quadratwurzel einer Zahl x R näherungsweise

Mehr

Objektorientierte Programmierung (ZQ1u2B)

Objektorientierte Programmierung (ZQ1u2B) Objektorientierte Programmierung (ZQ1u2B) Woche 4 Rekursion Christopher Scho lzel Technische Hochschule Mittelhessen 4. November 2015 Inhalt Rekursion Lineare Rekursion Verzweigte Rekursion Verschränkte

Mehr

1. Einführung in OpenMP

1. Einführung in OpenMP 1. Einführung in OpenMP Übersicht Einführung Homogene und inhomogene Arbeitsverteilung Rekursive Parallelität Beispiele Parallele Programmierung 1 Nicolas Maillard, Marcus Ritt 1 Überblick OpenMP: Vereinfachte

Mehr

m a r k u s r a a b d a p r ä s e n t a t i o n

m a r k u s r a a b d a p r ä s e n t a t i o n d i p l o m p r ä s e n t a t i o n z u m t h e m a Der Produktionsprozess in der Spieleentwicklung und eine mögliche Optimierung durch den Einsatz von Design Pattern t h e m e n w a h l - Projekt im Berufspraktikum

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Tagesprogramm

Tagesprogramm 1 2015-10-22 Tagesprogramm Syntax und Semantik Varianten von Schleifen Varianten von Programmverzweigungen 2 2015-10-22 Syntax und Semantik Darstellung der Syntax Syntax: Aufbau der Sätze bzw. Programme

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203 Inhaltsübersicht Vorwort 15 Vorwort zur deutschen Ausgabe 22 Kapitel 1 Elemente der Programmierung 25 Kapitel 2 Funktionen und Module 203 Kapitel 3 Objektorientierte Programmierung 335 Kapitel 4 Algorithmen

Mehr

8. Deterministisches Chaos

8. Deterministisches Chaos 8. Deterministisches Chaos Widerspruch: deterministisch chaotisch Schmetterlingseffekt: Der Flügelschlag eines Schmetterlings entscheidet über die Entwicklung eines Sturms. Allgemein: kleinste Änderungen

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Darstellung von Kurven und Flächen

Darstellung von Kurven und Flächen Darstellung von Kurven und Flächen Christoph Dähne 17. Juli 2008 1 Christoph Dähne Darstellung von Kurven und Flächen Überblick 1 Polygonnetze 2 Parametrisierte kubische Kurven 3 Hermite-Kurven 4 Bézier-Kurven

Mehr

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Nachtrag: Vergleich der Implementierungen von Stack

Nachtrag: Vergleich der Implementierungen von Stack Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als

Mehr

Apfelmännchen Theorie und Programmierung

Apfelmännchen Theorie und Programmierung Apfelmännchen Theorie und Programmierung Das Thema "Apfelmännchen" gehört zum Oberthema "Chaos und Ordnung in dynamischen Systemen". Es ist ein relativ neues Forschungsgebiete der Mathematik ( ab ca. 1980

Mehr

Nibobee on lines. Stiegler Philipp

Nibobee on lines. Stiegler Philipp Nibobee on lines Stiegler Philipp Projektstart: 20.02.2011 Hardware Aufbau und Inbetriebnahme Lötarbeiten durchgeführt 10 Stunden Nacharbeiten Hardware Plattform 3 Stunden 2h Zahnräder im Getriebekasten

Mehr

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Grundlagen der Programmierung in C++ Kontrollstrukturen

Grundlagen der Programmierung in C++ Kontrollstrukturen Block Keine Kontrollstruktur im eigentlichen Sinn Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Dient

Mehr

3.5 Schnelle Fouriertransformation (FFT, DFT)

3.5 Schnelle Fouriertransformation (FFT, DFT) 3.5 Schnelle Fouriertransformation (FFT, DFT) 3.5.1 Grundlagen Ein Polynom P = i a ix i C[x] vom Grad n ist eindeutig durch seine Koeffizienten a i bestimmt, d.h. man hat eine Bijektion {Polynome C[x]

Mehr

Rechnen mit Java Ganze Zahlen Gebrochene Zahlen Fazit

Rechnen mit Java Ganze Zahlen Gebrochene Zahlen Fazit Eigenschaft der Fundamentalen Java baut auf 8 fundamentalen Datentypen (primitiven) auf. Java kann ausschliesslich mit diesen Primitiven rechnen! Für die Arithmetik wird in Java zwischen zwei Rechenarten

Mehr

SensIDL Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL

SensIDL Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL SensIDL Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL C. Rathfelder - Modellgetriebene Entwicklung von Sensorschnittstellen mit SensIDL 1 Bildrechte: Sayda Pischinger, Creative Commons

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

2 Programmieren in Java I noch ohne Nachbearbeitung

2 Programmieren in Java I noch ohne Nachbearbeitung 1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Peg-Solitaire. Florian Ehmke. 29. März / 28

Peg-Solitaire. Florian Ehmke. 29. März / 28 Peg-Solitaire Florian Ehmke 29. März 2011 1 / 28 Gliederung Einleitung Aufgabenstellung Design und Implementierung Ergebnisse Probleme / Todo 2 / 28 Einleitung Das Spiel - Fakten Peg-33 33 Löcher, 32 Steine

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Numerische Methoden und Algorithmen in der Physik

Numerische Methoden und Algorithmen in der Physik Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 30.10.2008 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 1/ 48 Einführung Datentypen Operatoren

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Teil II. Literatur zur C-Programmierung:

Teil II. Literatur zur C-Programmierung: Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.

Mehr