Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP

Größe: px
Ab Seite anzeigen:

Download "Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP"

Transkript

1 Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Dipl. Inf. Thorsten Blaß Programming Systems Group Martensstraße Erlangen

2 Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache Architektur Compute Device Architecture Cluster Array Package Optimierungen Leistung des Frameworks Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 2

3 Motivation Heutige Desktop-PCs sind heterogene parallele Architekturen Viele Sprachen/Erweiterungen führen ans Ziel nvidia: CUDA, ATI: Stream, Khronos: OpenCL Sprachen/Erweiterungen müssen erlernt und verstanden werden Bestehende Algorithmen müssen portiert werden Algorithmen-Entwurf / -Portierung ist teuer und fehleranfällig Neue Architektur -> beginnt das Spiel von vorne? Wie kann man diese enorme Rechenleistung transparent an Entwickler weitergeben? Ziel: Algorithmen nur einmal implementieren und auf beliebigen Architekturen mit beliebigen Beschleunigern ausführen Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 3

4 JaMP JaMP implementiert das OpenMP-Framework für Java Standard zur Programmierung von Shared-Memory-Systemen OpenMP definiert plattformunabhängige Compiler-Direktiven, Bibliotheksfunktionen und Umgebungsvariablen Bewahrt Java's write once run anywhere -Ansatz Problem: Zur Übersetzungs-Zeit sind keine Annahmen über die Zielplattform möglich Alle zur Laufzeit verfügbaren Beschleuniger werden genutzt Compiler-Direktiven sind in Kommentare gekapselt //#omp parallel for for(int i = 0; i < 4096; i++){ A[i] = B[i] + C[i] } Modfizierter Eclipse-Java-Compiler übersetzt JaMP-Code nach Java-Bytecode Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 4

5 JaMP Java+OpenMP Quellcode Java/OpenMP Class Loader Java/OpenMP Übersetzer Java Bytecode + Annotationen Abstrakte Kernels Compute Device Manager GPU/CPU Übersetzer Methoden JVM-JIT Übersetzungszeit Laufzeit Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 5

6 JaMP-Sprache Der Allokations-Abschnitt sammelt Informationen für die Datenverteilung //#omp alloc_sec_start //#omp alloc_sec_end //#omp managed(sourceimage) int[][] sourceimage = new int[height][width]; //#omp managed(dstimage) int[][] dstimage = new int[height][width]; Übersetzer ersetzt das angegebene Array durch eine Instanz eines Array-Packages Zwei-dimensionale //#omp parallel for nest(2) parallele Schleife for(int i = 0; i < height; i++){ for(int j = 0; j < width ; j++){ dstimage[i][j] = srcimage[i][j] + Math.sqrt(i); } } Funktionen werden durch eine an die Hardware angepasste ersetzt Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 6

7 Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache Architektur Compute Device Architecture Cluster Array Package Optimierungen Leistung des Frameworks Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 7

8 JaMP - Architektur JaMP Cluster Array Package Compute Kernel Manager MPI Threads OpenCL CUDA Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 8

9 Compute Kernel Manager (CKM) API zur generischen Programmierung von Kerneln Abstrahiert von konkreten Beschleunigern (Device) Speicherverwaltung Generiert aus der CKM Sprache Device spezifische Kernel Ruft Kernel auf einer Menge von Devices auf Ausmessen der Devices beim Start Gemessen werden: Nachrichten-Transfers, Kernellaufzeiten Ergebnisse werden in Speed-up umgerechnet Verbirgt MPI und RPCs (entfernte) Kopieroperationen zwischen Devices (entfernte) Übersetzung der Kernels Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 9

10 Cluster Array Package (CAP) Verteilt die Daten über die verfügbaren Devices: Stellt Zugriffsmethoden (get/set) zur Verfügung Kopieroperationen Array-Elemente werden in Chunks verwaltet Chunks werden einzelnen Devices zugeordnet Drei Array-Typen Repliziertes Array Sicherstellen der Datenkonsistenz Partitioniertes Array Datenverteilung auf die verfügbaren Devices Wrapper Array Verbirgt tatsächlich instantiierten Array-Typ Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 10

11 Cluster Array Package (CAP) Repliziertes Array Wird genutzt bei zufälligen Adressierungsmustern //#omp parallel for for(int i = 0; i < x; i++){ a[2 * i + 8] =. } Jedes Device erhält eine lokale Kopie des Arrays Alle Chunks enthalten die selben Daten Datenkonsistenz muss sichergestellt werden Jeder Knoten benötigt einen zusätzlichen Chunk (Urbild) Device verändert Element Chunks unterscheiden sich Erzeugen eines Diff: Vergleiche Chunks gegen lokale Kopie Aktualisiere alle lokalen Chunks und sende Diffs zu allen anderen Knoten Jeder Knoten führt die gleichen Operationen aus Übersetzer fügt Anweisungen zur Sicherstellung der Datenkonsistenz ein Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 11

12 Cluster Array Package - Partitioniertes Array Wird verwendet wenn daten-paralleles Rechnen möglich ist Partitionierungsvektor zur Bestimmung der partitionierbaren Dimensionen //#omp parallel for for(int i = 0; i < x; i++){ //#omp parallel for for(int i = 0; i < x; i++){ a[i] =. for(int j = 0; j < y; j++){ a[i][2*j+i] =. } } } Partitionierungsvektor [1] a[i][2*j+1] Partitionierungsvektor [1,0] Boundaries helfen, den Kommunikationsaufwand beim Zugriff auf Nachbarelemente zu reduzieren a[i+1], a[i-1], Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 12

13 Cluster Array Package Partitioniertes Array Jedes Device erhält nur einen Teilbereich eines Arrays Benötigt Partitionierung-Algorithmus Rechenleistung eines Devices entscheidet über die Größe der zugeteilten Indexmenge CAP bietet drei Partitionierungs-Algorithmen Partitionieren nach Rechenleistung Verzögerte Partitionierung Maximale Speicherauslastung Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 13

14 Cluster Array Package Partitioniertes Array Partitionierung nach Rechenleistung Wähle partitionierbare Dimension (Partitionierungsvektor) Aufsummieren aller Speed-ups Summe wird als verfügbare (virtuelle) Devices interpretiert Partitionierbare Dimension wird durch Anzahl der virtuellen Devices geteilt virtuelle chunks pro Device Virtuelle Devices werden auf die Realen abgebildet (konsumierten dabei die virtuellen Chunks) Speedup = 1 Partitionierungsvektor [1,1] 3 Virtuelle Devices Speedup = 2 Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 14

15 Cluster Array Package Partitioniertes Array Verzögerte Partitionierung Arbeitet wie Partitionierung nach Speed-up berücksichtigt zusätzlich komplett benötigten Speicher Bevor die Partitionierungs-Informationen berechnet werden, findet eine Überprüfung statt ob ALLE Arrays in den Speicher des Devices passen Versucht ein Device mehr virtuelle Chunks zu konsumieren als in den Speicher passen wird die Größe angepasst Optimiert für Speicherauslastung Nutzt so wenig Devices wie möglich Devices sind aufsteigend nach ihrem speed-up sortiert Speicher eines Devices wird komplett gefüllt Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 15

16 Motivation Adaptive Rekonfiguration Frage: Wieviele Knoten (und welche Devices) soll ich für mein Programm benutzen? Antwort hängt von der Applikation ab: Zuviele Knoten können zu hohen Kommunikationskosten führen Zu wenige Knoten können zu einer Überlastung der Knoten führen Geeignete Devices hängen von der Komplexität des Kernels ab Heuristik generiert verschiedene Device-Mengen zu definierten Zeitpunkten (z.b. jeden n-ten parallelen Aufruf) vor einem parallelen Aufruf Misst die Zeit, die eine Kernel-Ausführung benötigt Rekonfiguriert Arrays auf neue Device-Menge Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 16

17 Adaptive Rekonfiguration Benötigt Heuristik, um zu entscheiden wie/wann neue Device-Mengen erstellt werden Starte mit einem Knoten und füge nachfolgend neuen hinzu Starte mit allen Knoten und entferne jeweils einen Knoten werden hinzugefügt bzw. entfernt, wenn der Speed-up unterhalb einer vorgegebenen Schranke bleibt das Verhältnis zwischen Laufzeit/Kommunikations- Aufwand eine bestimmte Schranke überschreitet Heuristik wird zur Laufzeit ausgewählt Analysiere verfügbare Devices Enthält Device-Menge nur einen Knoten: Hinzufügen Enthält Device-Menge alle Knoten: Entferne Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 17

18 Adaptive Rekonfiguration Implementiert in 3 Modulen: 1) Virtueller Cluster Verwaltet Devices in virtuellen Cluster-Knoten Gegenwärtig benutze und verfügbare Devices Heuristik: Hinzufügen oder entfernen 2) Adaptive Info Ausgangspunkt für Rekonfiguration Vergleicht aktuelle Device-Menge gegen bisher Beste Liefert better, worse, equal zurück Generiert nächste Device-Menge Modelliert als endlicher Zustandsautomat Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 18

19 Adaptive Rekonfiguration Heuristiken Implementieren Methoden... die entscheiden wie eine Device-Menge in einem bestimmten Zustand verändert wird wie die Device-Menge gebildet wird Definieren, welche Devices berücksichtigt werden sollen (z.b nur GPUs, nur CPUs, alles) Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 19

20 Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache Architektur Compute Device Architecture Cluster Array Package Optimierungen Leistung des Frameworks Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 20

21 Performance Zusammensetzung der Laufzeit Matrix-Multiplikation (2048x2048) 1,7 s Kernellaufzeit Speichermanagement Übersetzungszeit 0,3 s 3,7 s Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 21

22 Speed-up gegenüber einem Knoten mit CPU CPU GPUs CPU + GPU CPU GPUs CPU + GPU CPU GPUs CPU + GPU Speed-up Speed-up Sped-up Nodes Edge Detection Nodes Matrix Multiplikation 5000x Nodes Black Scholes CPU GPUs CPU + GPU Speed-up Nodes Seure Function Evaluation Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 22

23 Zusammenfassung Java's write-once-run-everywhere -Ansatz bleibt erhalten Anwender parallelisiert einen Algorithmus nicht für eine spezielle Architektur Vorhandener Code kann mit minimalen Aufwand parallelisiert werden JaMP ermöglicht die transparente Nutzung von Beschleunigern JaMP ermöglicht die Nutzung von Clustern ohne zusätzlichen Aufwand für den Programmierer JaMP sucht die für einen Algorithmus geeignetste Kombination von Beschleunigern / Knoten aus Ausstehende Erweiterungen: Objekte, Exceptions,... Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Thorsten Blaß Folie 23

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

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Moderne parallele Rechnerarchitekturen

Moderne parallele Rechnerarchitekturen Seminar im WS0708 Moderne parallele Rechnerarchitekturen Prof. Sergei Gorlatch Dipl.-Inf. Maraike Schellmann schellmann@uni-muenster.de Einsteinstr. 62, Raum 710, Tel. 83-32744 Dipl.-Inf. Philipp Kegel

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO

High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO Anastasios Stomas SFI Technology Services AG 12. März 2003 anastasios.stomas@sfi.ch Seite 1 Hintergrund INHALT Cluster-

Mehr

Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage

Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft Fallbeispiel Wettervorhersage VPE Swiss Workshop, HSR 24. Januar 2013 David Müller, Tobias Gysi Vision trifft Realität. Supercomputing

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

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

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

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

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

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.

Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp. Linux-Cluster mit Raspberry Pi Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.de Lange Nacht der Wissenschaften 2013 Moore s Law Moore s Law (1965)

Mehr

Proseminar Technische Informatik A survey of virtualization technologies

Proseminar Technische Informatik A survey of virtualization technologies Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

> Internet- und GPU-basiertes Cloud-Computing

> Internet- und GPU-basiertes Cloud-Computing > Projektseminar im SoSe 2011 Prof. Sergei Gorlatch, Philipp Kegel, Dominique Meiländer, Michel Steuwer AG Parallele und Verteilte Systeme, Westfälische Wilhelms-Universität Münster Lernziele 2 Erlernen

Mehr

Programming Models for Cell BE

Programming Models for Cell BE Hauptseminar MAP08 Programming Models for Cell BE Hannes Stadler, Sebastian Graf HannesStadler@gmx.de, sebgr@gmx.net Betreuung: Matthias Hartl, Hritam Dutta, Frank Hannig Hardware-Software-Co-Design Universität

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek Release MIL 9.2 Matrox Imaging Library weltweit ein voller Erfolg! RAUSCHER BILDVERARBEITUNG Telefon

Mehr

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop am Beispiel von OpenCL und Masterseminar Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig, 02.11.2011 Gliederung 1 Grundlagen 2 3 Gliederung 1 Grundlagen 2 3 Was ist? Clustersystem zur verteilten

Mehr

High Performance Computing

High Performance Computing REGIONALES RECHENZENTRUM ERLANGEN [ RRZE ] High Performance Computing Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten Michael Meier, RRZE, 01.07.2015 Agenda Was bedeutet

Mehr

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2013 Tim Conrad Staff Tim Conrad AG Computational Proteomics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

OpenGL. (Open Graphic Library)

OpenGL. (Open Graphic Library) OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation

Mehr

Perzentile mit Hadoop ermitteln

Perzentile 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

Mehr

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2015 Tim Conrad Staff Tim Conrad AG Medical Bioinformatics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

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

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Hochleistungsrechnen in Grids

Hochleistungsrechnen in Grids Hochleistungsrechnen in Grids ProActive Markus Matz 11.12.2006 Übersicht Grids Merkmale Probleme ProActive Aktive Objekte Knoten Virtuelle Knoten Grid Komponenten Kompatibilität & Anwendungen Markus Matz

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

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

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014 Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase

Mehr

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10 Prototypvortrag Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning Projektseminar WS 2009/10 Eugen Fot, Sebastian Kenter, Michael Surmann AG Parallele

Mehr

Multi-Core Architectures and Programming. Android Programming Models. C. Kugler und E. Sert 16.05.2013

Multi-Core Architectures and Programming. Android Programming Models. C. Kugler und E. Sert 16.05.2013 Multi-Core Architectures and Programming Android Programming Models C. Kugler und E. Sert 16.05.2013 Gliederung Gliederung Motivation Android SDK Allgemeines Homogene Parallelisierung Android NDK Allgemeines

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs

Mehr

Loadbalancing und Clustering mit Tomcat 6

Loadbalancing und Clustering mit Tomcat 6 Loadbalancing und Clustering mit Tomcat 6 Java Forum Stuttgart 3. Juli 2008 Michael Heß ORDIX AG, Paderborn mhe@ordix.de www.ordix.de Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing

Mehr

Analysesoftware für Soziale Netzwerke

Analysesoftware für Soziale Netzwerke KIT Karlsruhe Institut of Technology Praxis der Software-Entwicklung WS 2009/10 Gruppe 7»Testdokument«v 1.0 Analysesoftware für Soziale Netzwerke 26.02.2010 Phase Phasenverantwortlich e-mail Pflichtenheft

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen 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

Mehr

Seminar GPU-Programmierung/Parallelverarbeitung

Seminar GPU-Programmierung/Parallelverarbeitung Seite iv Literaturverzeichnis 1) Bengel, G.; et al.: Masterkurs Parallele und Verteilte Systeme. Vieweg + Teubner, Wiesbaden, 2008. 2) Breshears, C.: The Art of Concurrency - A Thread Monkey's Guide to

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2 Excel beschleunigen mit dem mit Windows HPC Server 2008 R2 Steffen Krause Technical Evangelist Microsoft Deutschland GmbH http://blogs.technet.com/steffenk Haftungsausschluss Microsoft kann für die Richtigkeit

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

Lokales Storage Teil 1

Lokales Storage Teil 1 Lokales Storage Teil 1 Zinching Dang 08. Juli 2015 1 Lokales Storage im Allgemeinen Lokales Storage im Allgemeinen Datenträger, die direkt am Host angeschlossen sind Anbindung über verschiedene Bus-Systeme

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Complex Hosting. Whitepaper. Autor.: Monika Olschewski. Version: 1.0 Erstellt am: 14.07.2010. ADACOR Hosting GmbH

Complex Hosting. Whitepaper. Autor.: Monika Olschewski. Version: 1.0 Erstellt am: 14.07.2010. ADACOR Hosting GmbH Complex Hosting Autor.: Monika Olschewski Whitepaper Version: 1.0 Erstellt am: 14.07.2010 ADACOR Hosting GmbH Kaiserleistrasse 51 63067 Offenbach am Main info@adacor.com www.adacor.com Complex Hosting

Mehr

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Henning Schild Dresden, 5.2.2009 Definition Einführung von Abstraktionsschichten

Mehr

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Scientific Computing 07. Oktober 2009 Siegfried Benkner Wilfried Gansterer Fakultät für Informatik Universität Wien www.cs.univie.ac.at

Mehr

Heterogenes Speichermanagement mit V:DRIVE

Heterogenes Speichermanagement mit V:DRIVE Heterogenes Speichermanagement mit V:DRIVE V:DRIVE - Grundlage eines effizienten Speichermanagements Die Datenexplosion verlangt nach innovativem Speichermanagement Moderne Businessprozesse verlangen auf

Mehr

Entwicklung von Software für drahtlose Sensor-Netzwerke

Entwicklung von Software für drahtlose Sensor-Netzwerke Entwicklung von Software für drahtlose Sensor-Netzwerke Jan Blumenthal, Dirk Timmermann Universität Rostock Informatik 2003 Frankfurt/Main, 2. Oktober 2003 Gliederung Projekt-Vorstellung Einführung zu

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer ITIS-D'' IT-Infrastruktur WS 2014/15 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D'': Rechnerstrukturen, Teil 3 v1.0, 2014/11/27 Folie D''-1 Dieser Foliensatz Vorlesungsübersicht Seminar Wiss.

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

Mehr

SINT Rest App Documentation

SINT Rest App Documentation SINT Rest App Documentation Release 1.0 Florian Sachs September 04, 2015 Contents 1 Applikation 3 2 Rest Service 5 3 SOAP Service 7 4 Technologiestack 9 5 Deployment 11 6 Aufgabe 1: Google Webservice

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

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

Solaris Cluster. Dipl. Inform. Torsten Kasch 8. Januar 2008

Solaris Cluster. Dipl. Inform. Torsten Kasch <tk@cebitec.uni Bielefeld.DE> 8. Januar 2008 Dipl. Inform. Torsten Kasch 8. Januar 2008 Agenda Übersicht Cluster Hardware Cluster Software Konzepte: Data Services, Resources, Quorum Solaris Cluster am CeBiTec: HA Datenbank

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

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

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Hochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum 18.01.2005

Hochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum 18.01.2005 Hochschule Bremen Rechnerstrukturen Labor I7I Thema: Grafikkarten Laborbericht Datum 18.01.2005 Carsten Eckert(83912) (72497) Fazit Für unseren Praxisteil zum Vortrag Grafikkarten haben wir uns entschieden,

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

> GPU-basiertes Cloud-Computing

> GPU-basiertes Cloud-Computing > Projektseminar im WiSe 2011/12 Prof. Sergei Gorlatch, Philipp Kegel, Dominique Meiländer, Michel Steuwer AG Parallele und Verteilte Systeme, Westfälische Wilhelms-Universität Münster Lernziele 2 Erlernen

Mehr

AS 7 / EAP 6 - Clustering. heinz.wilming@akquinet.de @akquinet h3p://blog.akquinet.de

AS 7 / EAP 6 - Clustering. heinz.wilming@akquinet.de @akquinet h3p://blog.akquinet.de AS 7 / EAP 6 - Clustering heinz.wilming@akquinet.de @akquinet h3p://blog.akquinet.de Was ist die EAP 6? EAP6!= EAP5 +1 JBoss Enterprise ApplicaBon PlaCorm 6 Stabile und unterstützte Pla>orm Basiert auf

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Beispiel droidremoteppt

Beispiel droidremoteppt Arthur Zaczek Nov 2014 1 Beispiel droidremoteppt 1.1 Beschreibung Powerpoint soll mit ein Android Handy über Bluetooth gesteuert werden Folien wechseln (Vor/Zurück) Folien am Handy darstellen Am Handy

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung 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

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,

Mehr

The Unbreakable Database System

The Unbreakable Database System The Unbreakable Database System Real Application Cluster Unterföhring, 04.2005 M. Kühn 1 Comparisson HA - HA Ziele, DataGuard, HA Oracle, RAC RAC Features - Cache Fusion, TAF, Load Balancing RAC on Solaris

Mehr

RAC auf Sun Cluster 3.0

RAC auf Sun Cluster 3.0 RAC auf Sun Cluster 3.0 Schlüsselworte RAC, OPS, Sun Cluster, Performance, Availability Zusammenfassung Oracle hat mit dem Real Application Cluster (RAC) aus einer Hochverfügbarkeitslösung eine Höchstverfügbarkeitslösung

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

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Tel. 0531 295-2599 E-Mail: Hartmut.Helmke@DLR.DE. Vorstellung der eigenen Person

Tel. 0531 295-2599 E-Mail: Hartmut.Helmke@DLR.DE. Vorstellung der eigenen Person Prof. Dr.-Ing. Hartmut Helmke in Deutsches Zentrum für Luft- und Raumfahrt e.v. (DLR) Institut für Flugführung Abteilung Lotsenassistenzsysteme Postfach 32 67 38108 Braunschweig Know-How-Abfrage Fragebogen

Mehr

Zend Server Cluster Manager

Zend Server Cluster Manager Zend Server Cluster Manager Jan Burkl Zend Technologies Wer bin ich? Jan Burkl jan.burkl@zend.com PHP Entwickler seit 2001 Projektarbeit Bei Zend seit 2006 System Engineer Zend Certified Engineer PHP 5

Mehr

Tier-Konzepte. Vertiefungsarbeit von Karin Schäuble

Tier-Konzepte. Vertiefungsarbeit von Karin Schäuble Vertiefungsarbeit von Karin Schäuble Gliederung 1. Einführung 3. Rahmenbedingungen in der heutigen Marktwirtschaft 3.1 Situation für Unternehmen 3.2 Situation für Applikationsentwickler 4. Lösungskonzepte

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen implementieren am Beispiel Suchbaum Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden

Mehr

Erfahrungen mit parallelen Dateisystemen

Erfahrungen mit parallelen Dateisystemen Erfahrungen mit parallelen n frank.mietke@informatik.tu-chemnitz.de Fakultätsrechen- und Informationszentrum (FRIZ) Professur Rechnerarchitektur Technische Universität Chemnitz 25.09.2007 - Megware HPC

Mehr

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 17. Kapitel 2 Architekturen 51. Kapitel 3 Prozesse 91

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 17. Kapitel 2 Architekturen 51. Kapitel 3 Prozesse 91 Inhaltsverzeichnis Vorwort 13 Kapitel 1 Einleitung 17 1.1 Definition eines verteilten Systems................................ 19 1.2 Ziele........................................................ 20 1.2.1

Mehr

XEN Performance. Projektpraktikum Informatik. Arne Klein 2008-02-26. Arne Klein () XEN Performance 2008-02-26 1 / 25

XEN Performance. Projektpraktikum Informatik. Arne Klein 2008-02-26. Arne Klein () XEN Performance 2008-02-26 1 / 25 XEN Performance Projektpraktikum Informatik Arne Klein 2008-02-26 Arne Klein () XEN Performance 2008-02-26 1 / 25 1 Virtualisierung mit XEN 2 Performance von XEN Allgemeines Netzwerk-Performance IO-Performance

Mehr

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

Mehr

Programmierung von Many-Cores. Seminar: Software Engineering für Exascale Computing

Programmierung von Many-Cores. Seminar: Software Engineering für Exascale Computing Programmierung von Many-Cores Seminar: Software Engineering für Exascale Computing Patrizia Peller April 18, 2013 Programmierung von Many-Cores Hardware-Architekturen Anforderungen an Programmiersprachen

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

Verteilte Systeme. Geteilte Last ist halbe Last. 7. Lastverteilung

Verteilte Systeme. Geteilte Last ist halbe Last. 7. Lastverteilung Verteilte Systeme 7. Lastverteilung Geteilte Last ist halbe Last Potential an Parallelarbeit im Rechnernetz optimal ausnutzen Kreative Lastverteilung Verteilte Programmierung Mechanische Lastverteilung

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr