Java für das Hochleistungsrechnen
|
|
- Hermann Brauer
- vor 8 Jahren
- Abrufe
Transkript
1 Java für das Hochleistungsrechnen [Special Section, Comm. of the ACM, Okt. 2001] Entwicklung: 1998: Gründung des Java Grande Forums Mai 2000: Spezialausgabe der Zeitschrift Concurrency: Practice & Experience Okt. 2001: Spezialsektion in der Zeitschrift Communications of the ACM Java Grande Forum: Aufgaben Evaluierung der Sprache Java und ihres Laufzeitsystems für Grand Challenge Anwendungen Fokussierung der Java Grande Gemeinde (jährliche Konferenz bis 2003) Erstellung von Benchmarks, APIs, Verbesserungsempfehlungen, etc. Warum Java für HPC? um die Fülle der Java-Programmierer zu erreichen (Bibliotheksfundus) um Geldgeber zu erreichen für Dinge, die sich nicht ohne Weiteres mit Fortran und C tun lassen. 1/17
2 Wie mit Java umgehen? Kurzfristig: Kopieren gängiger HPC-Technologie nach Java SPMD-Parallelität (PVM, MPI) Kommunikation zwischen JVMs sofort umsetzbar im Wettbewerb mit Fortran und C Längerfristig: Entwicklung neuer HPC-Technologie für Java Vorteile von Java gegenüber Fortran und C: Portierbarkeit des Bytecodes Objektorientierung Fadenparallelität dynamische Parallelität (echtes MIMD) irreguläre Parallelität Optimierungen während der Laufzeit (JIT) Java anpassen Sich an Java anpassen + fokussierte Entwicklung Sprachlimitierungen bestimmen neuer Technologie die Entwicklung Akzeptanzrisiko + große Benutzergemeinde. 2/17
3 Was spricht gegen Java für HPC? Java ist interpretiert + schneller Vertrieb + hohe Sicherheit + einfacher, universaler Compiler langsame Ausführung + Dos&Don ts-liste für HPC-Programmierung in Java [Boisvert et al. 2001] Java ist eine große Sprache kleine Sprachen sind effizienter implementierbar: statischer Speicher (klassisches Fortran) schneller als per Hand verwalteter dynamischer Speicher (C) schneller als automatisch verwalteter dynamischer Speicher (Java) Fallstudie: klassisches Fortran fünfmal schneller als C, da Compiler keinen Code für Aliastests einfügen muss Java ist nicht auf HPC ausgerichtet Websprache Betonung auf Sicherheit, Portabilität, Objektorientierung, Verteiltheit Effizienz zweit- oder drittrangig. 3/17
4 Java und Numerik Sprachänderungen: von Java Grande instigiert strictfp: Methodenattribut zur Einhaltung bitreproduzierbarer, standardisierter Gleitpunktarithmetik auf allen Zwischenresultaten aufgenommen in Java 1.2 mittels eines Java Special Request im vorherigen Java-Standard war Bitreproduzierbarkeit zwingend Bitreproduzierbarkeit verbietet Optimierungen unter Ausnutzung von Assoziativität, Kommutativität, etc. fastfp: Methodenattribut zur Benutzung maschinenspezifischer Hardware Beispiel: float-multiply-add (FMA) zur Vektormultiplikation Java Special Request versandet Weiteres Problem: unpassende Datentypen für komplexe Zahlen und Arrays beides sind Objekte: umständliche Syntax von Operationen (Methodenaufrufe) Referenz- statt Wertsemantik Effizienzverluste (dynamische Speicherverwaltung) Java-Arrays haben zusätzliche, schlechte Eigenschaften sie müssen nicht rechteckig sein es kann Aliasing zwischen Elementen bestehen. 4/17
5 Modellierung komplexer Zahlen für HPC in Java [IEEE CSE Papier von Boisvert et al. 2001] Komplexe Zahlen sind Objekte: Complex a = new Complex(5,2); Complex b = a.plus(a); Complex c = b; Nachteile: umständliche Syntax unnötige Dynamik der Speicherverwaltung Behandlung inkonsistent mit anderen Basistypen (Referenzgleichheit, nicht Wertgleichheit) Lösungsansatz: zusätzlicher Basistyp complex complex ist Wertepaar von Doubles complex ist Obertyp von double Präprozessor transformiert syntaktisch gezuckerte Operationen auf complex-werten in Operationen auf double-paaren. 5/17
6 Modellierung von Arrays für HPC in Java (1) [Comm.ACM(CACM)- und JavaGrande(JG)-Papier von Moreira et al. 2001] Array-Problem im Bild (CACM: Abb. 1) Fallstudie: BLAS-Programme dgemv (JG: Abb. 2) dgemm (JG: Abb. 3) Option 1: mit einem Klassenpaket eine Klasse pro Dimensionalität und Elementtyp (CACM: Abb. 5) Beispiel: intarray3d = new intarray3d(m,n,p) Compilermethoden für rechteckige Arrays anwendbar Operationen auf Elementen und Arraysektionen (à la HPF) Vor-und Nachteile: + JVM kann unverändert bleiben (Portabilität) für bestimmte Optimierungen einfache, lokale Änderungen der JVM nötig Dimensionalität begrenzt (im vorgestellten Paket: 7) Leistungsportabilität nur bei festgelegtem Arraylayout bequeme Syntax für Methodenaufrufe notwendig. 6/17
7 Modellierung von Arrays für HPC in Java (2) Probleme mit der bequemen Syntax für Methodenaufrufe: Darstellung: Sequenz von punktweisen Operationen (JG: Abb. 4, 5(a)) Updates und Nebenwirkungen greifen für jedes Array-Element separat eine aggregierte Operation, d.h. multiple Zuweisung aller Array-Elemente (JG: Abb. 5(b), 5(c)) Sonderfälle für das ganze Array greifen vor dem Update des ersten Array-Elementes Updates aller Array-Elemente erfolgen nach der Auswertung aller Array-Elemente Achtung: punktweise und aggregierte Updates können zu unterschiedlichen Resultaten und Sonderfallverhalten führen Implementierungsoptionen: führe Overloading arithmetischer Operatoren ein + Arraypackage muss nur installiert sein, wo man es braucht große Sprachänderung (Java hat kein Overloading) erweitere die Syntax der Kernsprache Arraypackage ist Teil der allgemeinen Installation + geringere Auswirkung auf die Sprachdefinition von Java. 7/17
8 Modellierung von Arrays für HPC in Java (3) Option 2: mit einer neuen JVM Shape-Analyse von Arrays (im Speziellen einfach, generell schwierig) Speicheranalyse zur Zeit der Allokation und bei jedem Arrayzugriff (Dichtheitsanalyse) Beispiel: double[][] A = new double[m+1][n+1] (JC: Abb. 6) anfangs: Dichtheitsmarke gesetzt Änderung der Arraysstruktur Löschen der Dichtheitsmarke Beispiele: A[i] = new double[2*n] A[i] = B[i] Vor-und Nachteile: + keine Sprachänderung Rechteckigkeit manchmal schwer zu erkennen: double[][] a = new double[m][]; for (int i=0; i<m; i++) a[i] = new double[n]; schwerwiegende JVM-Erweiterungen keine arrayspezifischen neuen Operatoren (z.b. Sektionierung). 8/17
9 Modellierung von Arrays für HPC in Java (4) Option 3: mit neuen Sprachkonstrukten Beispiel: float [*,*] Y = new float [n,m] Zugriff mit normaler Indizierungsnotation (JG: Abb. 7-8) Sektionen in jeder Dimension möglich Transformationen in eindimensionale Arrays auf Java-Ebene (JG: Abb. 9-10) Vor-und Nachteile: + Bytecode und JVM unverändert + unbeschränkte Dimensionalität starke Sprachänderungen einige Komplikationen (z.b. nicht als Rückgabewert benutzbar, da Menge von Variablen; man kann aber einen Resultparameter vorbereiten). 9/17
10 Das Java Sonderfallmodell [Comm.ACM-Papier von Moreira et al. 2001] Java Standard: alle Zeiger auf Null prüfen (positiv Sonderfall) alle Arrayzugriffe auf Grenzverletzung prüfen (positiv Sonderfall) präzises Sonderfallmodell: alle Effekte vor dem Sonderfall sichtbar alle Effekte nach dem Sonderfall nicht sichtbar Problem: Komplikationen entstehen durch Umordnung von Operationen spekulative Ausführung Lösungsansatz: Versionierung von Schleifensätzen (CACM: Abb. 2). 10/17
11 Hoare-Axiome für abstrakte Datentypen. 11/17 Bemerkung: Javas Monitor garantiert nicht B(cond) in post(cond.wait) Klasse: sequentiell zugreifbar Synchronisation: keine Beweisregeln: Konstruktormethoden: {Pre} Init {I} andere Methoden: {Pre(Op) I} Op {Post(Op) I} die Invariante I beschreibt den Zustand der Daten zwischen Zugriffen Monitor: parallel zugreifbar Synchronisation: short-term: gegenseitiger Ausschluss der Methodenaufrufe (problemunabhängig) mid-term: Suspendierung und Reaktivierung bezügl. eines Monitorzustandes mitgelieferter abstrakter Datentyp condition: Datum: FIFO-Schlange von Prozessidentifikatoren Methoden: wait zur Suspendierung und signal zur Reaktivierung Beweisregeln: wie gehabt, und zusätzlich für Schlange cond: {I} cond.wait {I B(cond)} {I B(cond)} cond.signal {I}
12 Monitore in Java Datenobjekt: Klasseninstanz [Andrews: Kap , Dahls Monitorpapier] Short-Term Scheduling: (Warteschlange: Entry Queue) Methodenattribut synchronized Objektmethode: Klassenmethode: atomar bzgl. Aufrufen anderer......objektmethoden desselben Fadens...Klassenmethoden derselben Klasse Mid-Term Scheduling: (Warteschlange: Condition Queue) mit Operationen: wait() / notify() (in unseren Pufferprogrammen in den Operationen auf einer Semaphore untergebracht) es gibt nur eine Condition Queue pro Monitor (nicht eine pro Bedingung) nach Aufwachen kann man sich des erwarteten Zustandes nur in Spezialfällen sicher sein (z.b. in unseren Pufferprogrammen) i.a. ist eine Warteschleife notwendig Javas Signalisierungsschema: signal + continue. 12/17
13 Signalisierungsstrategien (wechselseitig simulierbar) signal + continue (SC): (von Greg Andrews empfohlen) Signalisierer: macht weiter (d.h. nicht blockierend ) Signalisierter: Condition Queue Entry Queue Sprachen: Java signal + exit (SX): (führt zu Operationsfragmentierung) Signalisierer: verläßt Monitor endgültig Signalisierter: Condition Queue kritische Region Sprachen: Concurrent Pascal signal + wait (SW): Signalisierer: Entry Queue Signalisierter: Condition Queue kritische Region Sprachen: Modula, Euclid signal + urgent wait (SU): Signalisierer: Urgent Queue (eine Entry Queue mit höherer Priorität) Signalisierter: Condition Queue kritische Region Sprachen: Pascal-Plus automatisch (AS): implizites SC Sprachen: Owickis GPL (await-statement). 13/17
14 Signalisierung in Java (1) Vorteile: [Andrews] nur eine Condition Queue für alle Bedingungen: Entlastung der Implementierung nicht blockierend: einfachere Beweisregeln für wait und signal die Nachbedingung von wait und die Vorbedingung von signal müssen weniger Übereinstimmung zeigen als bei SW und SU = Monitoroperationen können isoliert konzipiert werden einfache Flächensignalisierung: signalall muss in SW und SU sorgfältig iterativ simuliert werden: jeder signalisierte Prozess muss einen Nachfolger explizit Aufwecken falsche Simulation: do not empty(c) signal(c) od (Nichttermination, wenn Prozesse wieder in c enden) Nachteile: im Allgemeinen Warten in einer Schleife notwendig für mehrere Condition Queues spezielle Klasse notwendig Priorität der Schlangen nicht spezifiziert größere Priorität für Entry als für Condition Queue möglich Konsequenz: Gefahr des Verhungerns. 14/17
15 Signalisierung in Java (2) EMonitor-Klasse: [EMonitor-Papier] korrekte Schlangenprioritäten unpriorisierte und priorisierte Condition Queues Signalisierungsstrategien: SC, SW, SX. 15/17
16 Ein Paket-Switching-System Buffer M InputStream M M OutputStream P P P Input Transfer Output. 16/17
17 Verklemmungsgefahr bei Monitorhierarchien Struktur des Systems: ein Paketpuffer zwei Listen von Indizes in den Puffer für Ein- und Ausgabepakete Prozesse zur Paketeingabe, -konversion und -ausgabe Problematisches Szenario: eines von mehreren... Bei einem vollen Puffer entnimmt der Transferprozess ein Paket. Der Eingabeprozess schiebt sofort ein Paket nach. Nach der Konversion will der Transferprozess das Paket wieder ablegen. Er wird im Monitor OutputStream suspendiert. Deshalb kann der Ausgabeprozess den Puffer nicht leeren. Der Transferprozess selbst kann es auch nicht; er ist suspendiert. Verklemmung! Moral: Vermeide Monitorzugriffshierarchien! Zyklischer Puffer: (jeweils mit Argument 1, 3, 5) java BounderBuffer0 i (Monitorhierarchie: Verklemmung) java BounderBuffer1 i (keine Hierarchie: keine Verklemmung) java BounderBuffer2 i (keine Monitore: keine Verklemmung). 17/17
Monitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
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
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrDomänenmodell: Fadenkommunikation und -synchronisation
Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrSysteme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
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
MehrDesign by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
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
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,
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
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
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrSynchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73
Synchronisierung Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73 Übertragungsprozeduren Die Übertragung einer Nachricht zwischen Sender und Empfänger erfordert die Übertragung des Nutzsignals
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
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/
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrSoftwareentwicklungsprozess im Praktikum. 23. April 2015
Softwareentwicklungsprozess im Praktikum 23. April 2015 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit
MehrSoftware-Engineering SS03. Zustandsautomat
Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die
MehrElexis-BlueEvidence-Connector
Elexis-BlueEvidence-Connector Gerry Weirich 26. Oktober 2012 1 Einführung Dieses Plugin dient dazu, den Status Hausarztpatient zwischen der BlueEvidence- Anwendung und Elexis abzugleichen. Das Plugin markiert
Mehr6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne
6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten
MehrMORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
MehrErfahrungen mit Hartz IV- Empfängern
Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November
MehrAbschluss Version 1.0
Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten
MehrIst Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers
Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,
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
MehrBedingungen. Bedingungen. Bedingungen
Oftmals ist das Arbeiten mit notwendig. Dabei können sich die auf Formatierungen beziehen, aber auch auf Transformationen. Bedingte Formatierung Datentransformation 24.04.2006 Einführung in Excel 91 24.04.2006
MehrHow to do? Projekte - Zeiterfassung
How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...
MehrIst Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?
UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.
MehrClient-Server Beziehungen
Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Peter Puschner nach Folien von Franz Puntigam, TU Wien Überblick Ersetzbarkeit Kovarianz, Kontravarianz, Invarianz Client-Server
MehrDatenbankmodelle 1. Das Entity-Relationship-Modell
Datenbankmodelle 1 Das Entity-Relationship-Modell Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle ER Modell - 2 Was kann modelliert werden?
MehrNutzung von GiS BasePac 8 im Netzwerk
Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff
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
MehrEinführung in Subversion
Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
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:
MehrAnleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine
Seite 1 von 11 Anleitung Inhalt Inhalt... 1 1. Installation... 2 2. Setup... 2 2.1 Login... 2 2.2 Benutzer erstellen... 2 2.3 Projekt erstellen... 4 2.4 SVN/Git Integration... 6 2.4.1 Konfiguration für
MehrArbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.
Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v. Meine Lebens- Geschichte Warum ist Arbeit zur Lebens-Geschichte wichtig? Jeder
MehrInstallation OMNIKEY 3121 USB
Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,
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
Mehr10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall
5.0 10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung werden Sie erfahren, wie man die Windows 7-Firewall konfiguriert und einige
MehrIn vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.
Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.
MehrWindows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
MehrProduktschulung WinDachJournal
Produktschulung WinDachJournal Codex GmbH Stand 2009 Inhaltsverzeichnis Einleitung... 3 Starten des Programms... 4 Erfassen von Notizen in WinJournal... 6 Einfügen von vorgefertigten Objekten in WinJournal...
MehrProgrammieren I. Kapitel 15. Ein und Ausgabe
Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random
MehrAdvoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
MehrJan Parthey, Christin Seifert. 22. Mai 2003
Simulation Rekursiver Auto-Assoziativer Speicher (RAAM) durch Erweiterung eines klassischen Backpropagation-Simulators Jan Parthey, Christin Seifert jpar@hrz.tu-chemnitz.de, sech@hrz.tu-chemnitz.de 22.
MehrVerkehrsteilnehmer. Beispiel: Wir betrachten die Modellierung von Handlungskomponenten wie Verkehrsteilnehmern und Straßen.
7.6 Bedingte Rechte Manchmal sind Rechte nur unter bestimmten Voraussetzungen gültig. Diese Situation beschreiben wir -wie sonst auch üblich- mit bedingten Rechten. Beispiel: Wir betrachten die Modellierung
MehrAutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrEine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.
Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Nach den Änderungen die Facebook vorgenommen hat ist es einfacher und auch schwerer geworden eigene Seiten einzubinden und
MehrHistorical Viewer. zu ETC5000 Benutzerhandbuch 312/15
Historical Viewer zu ETC5000 Benutzerhandbuch 312/15 Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Dokumentation...3 2 Installation... 3 3 Exportieren der Logdatei aus dem ETC 5000... 3 4 Anlegen eines
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrMit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.
Stundenverwaltung Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Dieses Programm zeichnet sich aus durch einfachste
MehrProgrammieren Lernen mit BYOB. Gerald Futschek 5. November 2012
Programmieren Lernen mit BYOB Informatiktag 2012 Gerald Futschek 5. November 2012 Erste Programmier Schritte in der Schule Sehr viele verschiedene Dinge zu lernen: Syntax und Semantik der Befehle, Algorithmen,
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de
Mehrteamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
MehrECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN 978-3-86249-544-3
ECDL Europäischer Computer Führerschein Jan Götzelmann 1. Ausgabe, Juni 2014 Modul Präsentation Advanced (mit Windows 8.1 und PowerPoint 2013) Syllabus 2.0 ISBN 978-3-86249-544-3 ECDLAM6-13-2 3 ECDL -
MehrDokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser
Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrC++ mit Eclipse & GCC unter Windows
C++ mit Eclipse & GCC Seite 1 / 14 C++ mit Eclipse & GCC unter Windows Hinweise Stand 18. Okt. 2014 => GCC 4.9.1 Boost 1.56.0 Eclipse Luna V. 4.4.1 Java Version 8, Update 25 (entspricht 1.8.0_25) Achtung
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrErstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
MehrInhaltserzeichnis. Datenübernahme
Inhaltserzeichnis 1. Feststellen der Installationsart...2 1.1 Sichern der bereits installierten Version von V-LOG 5.0...2 1.2 Deinstallation der alten Version von V-LOG 5.0...3 1.3 Installation der neuen
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrGezielt über Folien hinweg springen
Gezielt über Folien hinweg springen Nehmen wir an, Sie haben eine relativ große Präsentation. Manchmal möchten Sie über Folien hinweg zu anderen Folien springen. Das kann vorkommen, weil Sie den gesamten
MehrGrenzen Sie sich von Ihren Wettbewerbern ab und nutzen Sie die Vorteile der 5-Jahres-Garantie der ZEMAG - kostenlos*.
Grenzen Sie sich von Ihren Wettbewerbern ab und nutzen Sie die Vorteile der 5-Jahres-Garantie der ZEMAG - kostenlos*. *Die Leistung ist für ZEMAG-Partner kostenlos. Die Teilnahme steht jedem frei. Teilnehmer
Mehr2.1 Sicherheits-Zonen... 3 2.2 ActiveX-Steuerelemente... 5 2.3 Skripting... 7 2.4 Verschiedenes... 8 3 Erweitert... 9
Einrichtungshinweise Microsoft Internet Explorer 9 Dieses Dokument beschreibt Einrichtungshinweise für den Microsoft Internet Explorer 9, die von myfactory International GmbH empfohlen werden, um myfactory
MehrSoftware Engineering. Sommersemester 2012, Dr. Andreas Metzger
Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrBitte verwenden Sie nur dokumentenechtes Schreibmaterial!
VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
MehrWord-Vorlagen-System mit Outlookanbindung
Inhalt der FAQ In Datei Zvlg_koerner.dot ist schreibgeschützt (Windows 7 bzw Windows 8) Probleme beim Speichern des Lizenzcodes... 2 Ermitteln des Word-Start-Up-Ordners... 3.Office Methode... 3 Microsoft-Methode
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrSCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...
Drucken - Druckformat Frage Wie passt man Bilder beim Drucken an bestimmte Papierformate an? Antwort Das Drucken von Bildern ist mit der Druckfunktion von Capture NX sehr einfach. Hier erklären wir, wie
MehrMARCANT - File Delivery System
MARCANT - File Delivery System Dokumentation für Administratoren Der Administrationsbereich des File Delivery Systems ist ebenfall leicht zu bedienen. Die wichtigsten drei Abschnitte sind: 1. Profil, 2.
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrJ.6 Programmierung eingebetteter Systeme
Vorteile von C in eingebetteten Systemen: leichter Zugriff auf die Hardware gute Kontrolle über die verwendeten Ressourcen (Speicher, CPU) Probleme mit C: stark eingeschränkte Laufzeitüberprüfungen ISO
MehrS/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
MehrSAP GUI 7.30 Installation und Einrichtung: Mac OSX
SAP GUI 7.30 Installation und Einrichtung: Mac OSX Autoren: Ethem Ucar Erstellt / geändert: 15.06.2015 Version: 1.0 Zielgruppe Studenten, Professoren und Lehrbeauftragte der Hochschule Ludwigshafen. Kurzbeschreibung:
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrPhPepperShop Modul Remarketing. Datum: 13. September 2013 Version: 1.2. Warenkorb Wiederherstellung. Bestellabbruch Benachrichtigung.
PhPepperShop Modul Remarketing Datum: 13. September 2013 Version: 1.2 Warenkorb Wiederherstellung Bestellabbruch Benachrichtigung X Glarotech GmbH Inhaltsverzeichnis 1. Einleitung...3 2. Installation...3
MehrErweitertes Kalkulationsfenster
Erweitertes Kalkulationsfenster Inhaltsverzeichnis 1. Bereich "Kalkulation" (Fokussierung: Ctrl-F2)... 3 2. Bereich "Kennzahlen"... 4 3. Bereich "Positionswerte"... 5 4. Bereich "Vorhandene Analysen" /
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrTerminabgleich mit Mobiltelefonen
Terminabgleich mit Mobiltelefonen Sie können Termine- und Aufgaben aus unserem Kalender, sowie die Adressdaten aus dem Hauptprogramm mit Ihrem Mobiltelefon abgleichen. MS Outlook dient dabei als Schnittstelle
MehrWindows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA
Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014 Windows 8.1 Grundkurs kompakt inkl. zusätzlichem Übungsanhang K-W81-G-UA 1.3 Der Startbildschirm Der erste Blick auf den Startbildschirm (Startseite) Nach
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrWinVetpro im Betriebsmodus Laptop
WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online
MehrBenutzerhandbuch - Elterliche Kontrolle
Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrStatuten in leichter Sprache
Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch
MehrGrundlagen verteilter Systeme
Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)
Mehr