Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP
|
|
- Heike Kohl
- vor 8 Jahren
- Abrufe
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
Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter
Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrEinfü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
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrOpenMP am Beispiel der Matrizenmultiplikation
OpenMP am Beispiel der Matrizenmultiplikation David J. Meder, Dr. Victor Pankratius IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrSession Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de
s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrProseminar 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.
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrVorlesung 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
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrImplementation of a Framework Component for Processing Tasks within Threads on the Application Level
Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrObjectBridge Java Edition
ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 ZPL Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Agenda 1. ZPL Überblick 2. Konzepte von ZPL Regionen, Region Specifiers
MehrTipps und Tricks zu Netop Vision und Vision Pro
Tipps und Tricks zu Netop Vision und Vision Pro Anwendungen auf Schülercomputer freigeben und starten Netop Vision ermöglicht Ihnen, Anwendungen und Dateien auf allen Schülercomputern gleichzeitig zu starten.
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrKostenstellen verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrEinfü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 keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrUm ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.
Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation
Mehr17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung 13.1. bis 17.1.2014
17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici 12.Übung 13.1. bis 17.1.2014 1 BEFRAGUNG http://1.bp.blogspot.com/- waaowrew9gc/tuhgqro4u_i/aaaaaaaaaey/3xhl 4Va2SOQ/s1600/crying%2Bmeme.png
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrAlignment-Verfahren zum Vergleich biologischer Sequenzen
zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrKommunikations-Management
Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal
MehrEMU Bill & Report 1/33
EMU Bill & Report 1/33 Inhaltsverzeichnis Schnellstart... 3 1. Datenlogger hinzufügen... 3 2. Kostenstelle erstellen... 5 3. Zähler zu Kostenstelle hinzufügen... 6 4. Rechnungsposition erstellen... 7 5.
MehrKommunikations-Management
Tutorial: Wie importiere und exportiere ich Daten zwischen myfactory und Outlook? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Daten aus Outlook importieren Daten aus myfactory nach Outlook
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrZimmertypen. Zimmertypen anlegen
Zimmertypen anlegen Hier legen Sie Ihre Zimmer an, damit sie auf der Homepage dargestellt werden und online buchbar gemacht werden können. Wobei wir ausdrücklich darauf hinweisen möchten, dass es ganz
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrBeheben von verlorenen Verknüpfungen 20.06.2005
Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:
MehrVideo Unlimited -Nutzungsbeschränkungen
Video Unlimited -Nutzungsbeschränkungen In diesem Dokument werden Beschränkungen erklärt, die für die Verwendung von Videos gelten, die Sie über Video Unlimited -Dienste gekauft oder ausgeliehen haben
MehrAnlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010
1 von 6 Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 ci solution GmbH 2010 Whitepaper Draft Anleitung Deutsch Verfasser: ci solution GmbH 2010 Manfred Büttner 16. September
MehrApplication Layer Active Network
Folie 1 Application Layer Active Network Vortrag zur Diplomarbeit Entwicklung eines Netzwerk-Interface zur Steuerung der Datenkommunikation einer Netzwerkkarte geschrieben und gehalten von Martin Wodrich
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
Mehr1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern
1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
MehrJava 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,
MehrKonfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Deutsche Telefon Standard AG
Konfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Deutsche Telefon Standard AG Allgemeines Stand 23.06.2015 Diese Anleitung beschreibt die Einrichtung der MyPBX IP-Telefonanlagen des Herstellers
MehrAbacus Formula Compiler (AFC)
Abacus Formula Compiler (AFC) Alle kennen Excel - jetzt sogar Ihre Java- Applikation! Bringt Tabellenkalkulationen auf die JVM http://formulacompiler.org/ Peter Arrenbrecht für Abacus Research AG http://abacus.ch/
MehrApplets I. Grundlagen der g Applet-Programmierung
Applets I Grundlagen der g Applet-Programmierung 2 Inhalt Applets Was sind Applets Entwicklung Grundlagen Zustandssteuerung eines Applets Methoden zum Nachrichtentransfer Soundausgabe Animation Einbindung
MehrIndividuelle Formulare
Individuelle Formulare Die Vorlagen ermöglichen die Definition von Schnellerfassungen für die Kontenanlage sowie für den Im- und Export von Stammdaten. Dabei kann frei entschieden werden, welche Felder
Mehr1. 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
MehrInformatik-Sommercamp 2012. Mastermind mit dem Android SDK
Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln
MehrEin Scan basierter Seitenangriff auf DES
Ein Scan basierter Seitenangriff auf DES Seminar Codes & Kryptographie SS04 Tobias Witteler 29.06.2004 Struktur des Vortrags 1. Einführung / Motivation 2. Struktur von DES 3. Die Attacke Begriffsklärung:
MehrBackup Premium Kurzleitfaden
Info Memeo Backup Premium bietet viele fortschrittliche automatische Backup-Funktionen und ist großartig für Benutzer von Digitalkameras und für Anwender, die bis zu 50.000 Dateien mit Backups sichern
MehrWärmebildkamera. Arbeitszeit: 15 Minuten
Wärmebildkamera Arbeitszeit: 15 Minuten Ob Menschen, Tiere oder Gegenstände: Sie alle senden unsichtbare Wärmestrahlen aus. Mit sogenannten Wärmebildkameras können diese sichtbar gemacht werden. Dadurch
MehrOrdner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
Mehr12. Dokumente Speichern und Drucken
12. Dokumente Speichern und Drucken 12.1 Überblick Wie oft sollte man sein Dokument speichern? Nachdem Sie ein Word Dokument erstellt oder bearbeitet haben, sollten Sie es immer speichern. Sie sollten
MehrTransparente Hausverwaltung Marketingschmäh oder doch: eine neue Dimension der Dienstleistung?
Transparente Hausverwaltung Marketingschmäh oder doch: eine neue Dimension der Dienstleistung? INTERNET Geschäftsführer Biletti Immobilien GmbH 24/7 WEB Server Frankgasse 2, 1090 Wien E-mail: udo.weinberger@weinberger-biletti.at
MehrBMW ConnectedDrive. www.bmw.com/ connecteddrive. Freude am Fahren BMW CONNECTED DRIVE. NEUERUNGEN FÜR PERSONALISIERTE BMW CONNECTED DRIVE DIENSTE.
BMW ConnectedDrive www.bmw.com/ connecteddrive Freude am Fahren BMW CONNECTED DRIVE. NEUERUNGEN FÜR PERSONALISIERTE BMW CONNECTED DRIVE DIENSTE. 1 EINLEITUNG. Im Rahmen der Neuausrichtung von BMW ConnectedDrive
Mehr.NET Code schützen. Projekt.NET. Version 1.0
.NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll
MehrOption 1: Hinzufügen eines Schritts zur Bearbeitungsliste... 2
Erklärung der Bearbeitungsliste Frage Wie verwende ich die Bearbeitungsliste? Antwort Alle Optimierungen, die auf Bilder angewandt werden, und im Rahmen der einzelnen Optimierungen jeweils vorgenommenen
MehrCopyright 2014 Delta Software Technology GmbH. All Rights reserved.
Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für
MehrBruchez, Eddy Druckdatum 20.07.2012 11:21:00
Dokumentenverwaltung J:\999 Migriert ins DMS\06 Anleitungen\Outlook RPC\ICT Anleitung Outlook anywhere.docx Autor Bruchez, Eddy Druckdatum 20.07.2012 11:21:00 Outlook Anywhere Inhalt Inhalt... 1 Was ist
MehrWo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite http://www.hp.
Erfahrungen mit dem Insight Manager von HP Dipl. Ing. Elektrotechnik (FH) - Automatisierungs- / Regelungstechnik DV-Spezialist Landesbank Rheinland-Pfalz Abteilung 2-351 Große Bleiche 54-56 55098 Mainz
MehrEinfach und schnell Kurse herbeizaubern mit dem Kurs Wizard
Einfach und schnell Kurse herbeizaubern mit dem Kurs Wizard I NHALTSVERZEICHNIS 1. Einleitung... 2 2. Kurse erstellen mit dem Kurs Wizard... 2 2.1. LV Auswahl / Kurserstellung... 3 2.2. Erweiterte Einstellungen...
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrDURCH VIDA ERZEUGTE PROTOKOLLDATEIEN 1 EINFÜHRUNG
DURCH VIDA ERZEUGTE PROTOKOLLDATEIEN 1 EINFÜHRUNG Beim Berichten über einen Fehler, erstellt VIDA Protokolldateien, die während des Prozesses zu nutzen sind. Die Protokolldateien werden benötigt, um die
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrZusatzmodul Lagerverwaltung
P.A.P.A. die kaufmännische Softwarelösung Zusatzmodul Inhalt Einleitung... 2 Definieren der Lager... 3 Zuteilen des Lagerorts... 3 Einzelartikel... 4 Drucken... 4 Zusammenfassung... 5 Es gelten ausschließlich
MehrRAID-Programm für Windows
RAID-Programm für Windows 1. Aufrufen von NVRAIDMAN Ein RAID-Treiber ist im nvidia-pauschaltreiber integriert, der sich auf der ASRock-Support-CD befi ndet. Nach der Installation des Treibers können Sie
MehrDie 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
MehrJava Enterprise Architekturen Willkommen in der Realität
Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen
MehrTitel. SCSM 2012 - ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab
Autor: Thomas Hanrath Microsoft Certified Trainer Titel SCSM 2012 - ITIL - CMDB - neue CI Klasse erstellen und benutzen Eine beispielhafte Installationsanleitung zur Verwendung im Testlab Quelle: System
MehrWir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrJavadoc. 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
MehrUpdatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
MehrKapitel 6: Graphalgorithmen Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrDHBW 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,
MehrFastViewer Remote Edition 2.X
FastViewer Remote Edition 2.X Mit der FastViewer Remote Edition ist es möglich beliebige Rechner, unabhängig vom Standort, fernzusteuern. Die Eingabe einer Sessionnummer entfällt. Dazu muß auf dem zu steuernden
MehrKonfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Deutsche Telefon Standard AG
Konfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Deutsche Telefon Standard AG Stand 29.06.2015 Allgemeines Diese Anleitung beschreibt die Einrichtung der MyPBX IP-Telefonanlagen des Herstellers
MehrBenutzerverwaltung Business- & Company-Paket
Benutzerverwaltung Business- & Company-Paket Gemeinsames Arbeiten mit der easyfeedback Umfragesoftware. Inhaltsübersicht Freischaltung des Business- oder Company-Paketes... 3 Benutzerverwaltung Business-Paket...
Mehr6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)
6. Bayes-Klassifikation (Schukat-Talamazzini 2002) (Böhm 2003) (Klawonn 2004) Der Satz von Bayes: Beweis: Klassifikation mittels des Satzes von Bayes (Klawonn 2004) Allgemeine Definition: Davon zu unterscheiden
Mehr1. Bearbeite Host Netzgruppen
1. Bearbeite Host Netzgruppen Eine "Host Netzgruppe" (von jetzt an Netzgruppe) kann mit einer Gästeliste, wenn Sie jemand zu einer Party einladen, verglichen werden. Sie haben eine Gästeliste erstellt
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
Mehr