Klaus Rohe Developer Platform & Strategy Group Microsoft Deutschland GmbH klrohe@microsoft.com. Programmierung für Multicore CPUs
|
|
- Ewald Kohler
- vor 8 Jahren
- Abrufe
Transkript
1 Klaus Rohe Developer Platform & Strategy Group Microsoft Deutschland GmbH Programmierung für Multicore CPUs
2 Agenda Einleitung Free Lunch is over Multicore- und Multiprozessor-Architekturen Grenzen der Parallelisierung Parallelisierung und Programmarchitektur Parallelisierung durch Multithreading Allgemeine Probleme beim Multithreading Multithreading in.net Neue Konzepte in.net 4.0 Task Parallel Library PLINQ Ausblick & Zusammenfassung
3 Taktrate der Intel Prozessoren Problem: Abwärme ist nicht mehr beherrschbar bei Steigerung der Taktrate! Taktrate der einzelnen Cores nimmt ab! Das Prinzip mehr Arbeit in weniger Zeit funktioniert nicht mehr => Arbeit muss auf mehr Ressourcen verteilt werden! Quelle:
4 The Free Lunch is Over Applikationen werden nicht automatisch performanter, wenn man die nächste CPU Generation nimmt Normale Laptops und Desktops besitzen heute Multicore CPUs Singlethreaded Applikationen können nur einen Core nutzen Geringere Performance als auf hoch getackteten Single-Core Konsequenz: Softwareentwickler müssen Parallelisierung nutzen Multithreaded Software entwickeln ist sehr komplex!! Wie kann man die Entwicklung paralleler Programme vereinfachen? The Free Lunch Is Over, A Fundamental Turn Toward Concurrency in Software By Herb Sutter
5 Multiprozessor Architekturen SMP Architektur NUMA Architektur Prozessor Prozessor Prozessor Prozessor Prozessor Prozessor Prozessor Cache Cache Cache Cache Speicher Speicher Speicher Bus Prozessor Prozessor Prozessor Hauptspeicher Speicher Speicher Speicher Speicher Prozessor Prozessor Prozessor NUMA: Non Uniform Memory Access SMP: Symmetrical Multi Processor Speicher Speicher Speicher
6 Architektur von Multicore-Prozessoren (Intel Core 2 Duo) Core 2 Duo Processor Core 0 Core 1 Architektur-Ressourcen Architektur-Ressourcen Ausführungs-Ressourcen Ausführungs-Ressourcen L1-Caches L1-Caches Cache-Controller Cache-Controller Power-Management-Controller L2-Cache mit Controllern (shared) Bus-Schnittstelle und -Controller FrontSideBus Aus: T. Rauber, G. Rünger, Multicore: Parallele Programmierung, Heidelberg 2008, ISBN , Seite 15
7 Grenzen der Parallelisierung Das Amdahlsche Gesetz N: Zur Verfügung stehende Prozessoren. Bei der parallelen Implementierung eines Programms, bei der ein Zeitanteil 0 <= S <= 1 sequentiell ausgeführt wird, beträgt der maximal erreichbare Speedup: Speedup = 1 / (S + (1 S) / N) P = 1 S: parallel ausführbarer Zeitanteil des Programms Allgemeiner Grenzwert des Speedup: 1 / S
8 Veranschaulichung des Amdahlschen Gesetzes P S P P S Parallele Verarbeitung (5 Prozessoren) P P S P S Sequentielle Verarbeitung Zeit Nach,Joe Duffy, Concurrent Programming on Windows, Seite 763
9 Speedup Grafische Darstellung des Amdahlschen Gesetzes 26,00 24,00 22,00 20,00 18,00 16,00 14,00 12,00 10,00 Speedup (S = 0.01) Speedup (S = 0.2) Speedup (S= 0.5) S: sequentieller Anteil 8,00 6,00 4,00 2,00 0, Anzahl Prozessoren
10 Kritischer Pfad Unausgewogene Lastverteilung P P S P Effektiv Sequentiell S P P Zeit Nach,Joe Duffy, Concurrent Programming on Windows, Seite 765
11 Gustafson Amdahl Gesetz von Gustafson ( Amdahl optimistisch ) Fixed Size Model: Zeit = 1 S P Serielle Verarbeitung S P Zeit = S + P/N Parallele Verarbeitung Speedup = 1 / (S + P/N) Scaled Size Model: Zeit = S + P S P Hypothetische serielle Verarbeitung S Zeit = 1 P Parallele Verarbeitung: Speedup = S + N * P Nach:
12 Parallelisierung & Programmarchitektur Agent Task Daten Agenten sind Teile eines Programms, deren Zustand isoliert ist und die asynchron miteinander kommunizieren. Tasks sind Gruppen von Operationen (Methoden, Funktionen, ) die von Agenten parallel und asynchron ausgeführt werden können und die normal einen gemeinsamen Zustand besitzen. Daten: Dateien, Datenbanktabellen, Array, Listen oder Baumstrukturen im Hauptspeicher
13 Agenten, Tasks & Daten Send Agent A Reply Agent B Task A1 Task A2 Task An Task B1 Task B2 Task Bn Data A2 Data B2 Nach Joe Duffy, Concurrent Programming on Windows, Seite 7
14 Agenda Einleitung Free Lunch is over Multicore- und Multiprozessor-Architekturen Grenzen der Parallelisierung Parallelisierung und Programmarchitektur Parallelisierung durch Multithreading Allgemeine Probleme beim Multithreading Multithreading in.net Neue Konzepte in.net 4.0 Task Parallel Library PLINQ Ausblick & Zusammenfassung
15 Multithreading Unterstützung in modernen Programmiersprachen C/C++ Pthreads C#, Java, Python Allgemeine Konstrukte zum: Erzeugen von Threads Synchronisieren von Threads Sperren von Ressourcen, die von mehreren Threads gemeinsam genutzt werden Verwaltung von Threadpools
16 Probleme mit Multithreading Explicit multithreading ist komplex und problembehaftet: Zuverlässigkeit Race-Conditions Deadlocks Inkonsistentes Sperren von gemeinsamen Ressourcen und Serialisierbarkeitsprobleme Performance: Performanceprobleme durch zu extensives Sperren von gemeinsamen Ressourcen Probleme mit der Lastverteilung auf CPUs. Wie viele Threads müssen erzeugt werden, Alles Probleme, mit denen sich ein Programmierer aus Gründen der Produktivität nicht befassen sollte! Was gibt es schon heute für Möglichkeiten (im.net Framework) Multithreading zu vereinfachen?
17 Vereinfachtes Multithreading in.net Multithreading wird in.net vereinfacht: Erzeugen und Verwalten mit der ThreadPool Klasse Asynchrones Programmiermodell Methoden und Web-Services I/O Operationen, Datenbankzugriffe Asynchrone Ausführung zeitintensiver Methoden in GUIs: BackgroundWorker Klasse
18 BackgroundWorker in.net Agent A (UI Thread) bgw = new BackgroundWorker(); Register worker; Register workchanged; Register workcompleted; worker { } workchanged { } workcompleted { } button_click( ) { Agent B (BackgroundWorker Thread) worker { ReportProgress(); } bgw.runworkerasync(worker); }
19 Demo BackgroundWorker Klasse in.net
20 Agenda Einleitung Free Lunch is over Multicore- und Multiprozessor-Architekturen Grenzen der Parallelisierung Parallelisierung und Programmarchitektur Parallelisierung durch Multithreading Allgemeine Probleme beim Multithreading Multithreading in.net Neue Konzepte in.net 4.0 Task Parallel Library PLINQ Ausblick & Zusammenfassung
21 Getting the free lunch back Return of the free lunch for the multicore era: Wie kann man die Programmierung von Applikationen vereinfachen, die automatisch eine größere Anzahl an CPU-Kernen ausnutzen, die mit der nächsten Hardwaregeneration zu erwarten ist? Single Core Core1 Core2 Core1 Core2 Core3 Core1 Core2 Core3 Core4 Core5 Core4 Core6 Hardwaregeneration
22 Microsoft Parallel Computing Initiative Vereinfachte Entwicklung paralleler Programme auf der Microsoft Windows Plattform, die korrekt, effizient und wartbar sind, für alle Softwareentwickler Softwareentwickler Ermöglichen, Programme einfacher zu parallelisieren, damit sie sich auf die eigentliche Problemlösung konzentrieren können. Steigerung von Effizienz und Skalierbarkeit paralleler Programme Entwurf und Test paralleler Programme vereinfachen
23 Parallel Extensions To The.NET Framework 4.0 (kurz PFX).NET Bibliothek, keine Änderungen am Compiler Leichtgewichtig: User-Mode Unterstützt deklaratives und imperatives Parallelisieren von Daten und Tasks: Imperative data and task parallelism (Task Parallel Library) Declarative data parallelism (PLINQ) Coordination/synchronization constructs (Coordination Data Structures) Gemeinsames Exception-Handling Modell
24 Parallel Extensions To The.NET Framework 4.0 Warum benötigt man das alles? Bietet überschaubare Anzahl von Konzepten und reduziert die Komplexität für parallele Programmierung Ziel: Anwendungsprogrammierern die Entwicklung parallelisierbarer Programme zu vereinfachen! Anwendungsprogrammierer ist kein Experte für Multithreading und Parallelisierung!! Wann verfügbar: mit.net 4.0 CTP unter: D BDA4-94CF5F8D4814&displaylang=en
25 Architektur der Parallel Extensions.NET Program PLINQ Execution Engine Declarative Queries C# Compiler Parallel Algorithms Data Partitioning Chunk Range Hash Striped Repartitioning Query Analysis Operator Types Map Filter Sort Search Reduce Merging Sync and Async Order-Preserving ForAll VB Compiler C++ Compiler F# Compiler Other.NET Compiler PLINQ Task Parallel Library Loop replacements Imperative Task Parallelism Scheduling Threads Coordination Data Structures (CDS) Thread-safe Collections Synchronization Types Coordination Types IL TPL or CDS Proc 1 Proc p
26 Tasks Ein zentrales Konzept der Parallel Extensions (PFX) ist die Task: System.Threading.Tasks Führt eine Funktion in einem separaten Thread aus. class Program { static void Main(string[] args) { Console.WriteLine("\nThread id = {0} in Main. Thread.CurrentThread.ManagedThreadId); Task task = new Task(delegate { PrintPrimes(10); }); task.start(); task.wait(); } Console.Write("\nPress any key to exit!"); Console.ReadKey(); private static void PrintPrimes(ulong n) { Console.WriteLine("\nThread id = {1} in PrintPrimes({0}).\n", n, Thread.CurrentThread.ManagedThreadId); } } for (ulong i = 0; i <= n; i++) { if (PrimeFunctions.IsPrime(i)) Console.WriteLine("{0} is prime", i); }
27 Futures Ein Future ist eine Task mit einem Rückgabewert class Program { static void Main(string[] args) { Random rnd = new Random(); Task<int> task = new Task<int>(() => { Thread.Sleep(rnd.Next(1000, 10000)); return rnd.next(1, 43); }); task.start(); } } Console.WriteLine("Lottery in progress..."); Console.WriteLine(task.Result); Console.ReadKey();
28 Einfache parallele Ausführung Folge von Methodenaufrufen oder Programmstatements: Method_A(); Method_B(); Method_C(); Falls sie unabhängig sind, parallelisierbar: Parallel.Invoke( () => Method_A(), () => Method_B(), () => Method_C());
29 Parallele Schleifen In Programmschleifen wird häufig hohe CPU- oder IO-Last erzeugt for (int i = 0; i < n; i++) work(i); foreach (T e in data) work(e); Können parallelisiert werden, wenn die Iterationen unabhängig sind. Keine Veränderung globaler oder statischer Variablen, oder Abhängigkeit von lokalen Variablen, die in geschachtelten Schleifen verändert werden Parallel.For(0, n, i => work(i)); Parallel.ForEach(data, e => work(e));
30 TPL Parallel.For Beispiel // Sequentiell void SeqMatrixMult(int size, double[,] m1, double[,] m2, double[,] result) { for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { result[i, j] = 0; for (int k = 0; k < size; k++) { result[i, j] += m1[i, k] * m2[k, j]; } } } } // Mit TPL using System.Threading; void ParMatrixMult(int size, double[,] m1, double[,] m2, double[,] result) { Parallel.For( 0, size, delegate(int i) { for (int j = 0; j < size; j++) { result[i, j] = 0; for (int k = 0; k < size; k++) { result[i, j] += m1[i, k] * m2[k, j]; } } }); }
31 Die TaskManager Klasse TaskManager WorkerThread 01 WorkerThread 02 WorkerThread 03 Task01 Task06 Task04 Task02 Task03 Task04 Task05 Task07 Task08 Work stealing Task05 Task queues
32 Parallel LINQ (PLINQ) LINQ: Language Integrated Query class Person { public string Name { get; set; } public int Alter { get; set; } } Person[] Personen = { }; new Person {Name="Hans", Alter=35}, new Person {Name="Gustav", Alter=25}, new Person {Name="Peter", Alter=40}, new Person {Name="Karin", Alter=22} var ps = from p in Personen where p.alter < 40 select p; ps = from p in Personen.AsParallel() where p.alter < 40 select p; PLINQ abstrahiert von den Details der Parallelisierung Funktioniert für alle IEnumerable<T>
33 Coordination Data Structures (CDS) (1) Concurrent Collections Implementieren das Interface IConcurrentCollection<T> ConcurrentQueue<T>, ConcurrentStack<T> BlockingQueue Producer Thread 1 Consumer Thread 2 BlockingCollection<T> Blockiert, wenn Kapazitätsgrenzen unter- oder überschritten werden.
34 Coordination Data Structures (CDS) (2) SpinWait Busy waiting ist machmal kostengünstiger als auf Synchronisation durch den Kernel zu warten. SpinLock Basiert auf Spinning, kein Warten auf ein Kernel- Ereignis. Begründung s. o. SemaphoreSlim Leichtgewichte Semaphor Implementierung
35 Demo TPL PLINQ CDC
36 Agenda Einleitung Free Lunch is over Multicore- und Multiprozessor-Architekturen Grenzen der Parallelisierung Parallelisierung und Programmarchitektur Parallelisierung durch Multithreading Allgemeine Probleme beim Multithreading Multithreading in.net Neue Konzepte in.net 4.0 Task Parallel Library PLINQ Ausblick & Zusammenfassung
37 Existierende Applikationen?? Existierendes Programm Refactoring Multicore-fähiges Programm
38 Architekturmodell einer multicore-fähigen Applikation auf Windows (.NET 4.0)? Client mit Grafischer Benutzeroberfläche Task Task WCF service Task WCF service request Task WCF service request WCF service request request Named pipes Server Windows Communication Foundation (WCF) WCF Service WCF Service WCF Service WCF Service WCF Service WCF Service
39 Weitere Entwicklungen Neue Werkzeuge zum Entwerfen, Debuggen und Testen von parallelen Programmen in Visual Studio 10 Software Transactional Memory (STM) für die Synchronisation beim Zugriff auf gemeinsame Ressourcen Siehe auch: SXM, C# Software Transactional Memory (Microsoft Research) d-1c afaf-edb35f544384/details.aspx Weiterentwicklung der Concurrency & Coordination Runtime (CCR) und Decentralized Software Services (DSS)
40 Zusammenfassung Mulitcore ist Realität und Entwickler sollten analysieren, wie sie ihre Programme parallelisieren können. Grenzen werden durch die Gesetze von Amdahl und Gustafson beschrieben. Vereinfachte Konzepte für Multithreading sind heute schon verfügbar (sowohl unter.net, Java als auch ) Neue Möglichkeiten für vereinfachte Entwicklung von Multicore-fähigen Applikationen werden in Zukunft mit.net 4.0 verfügbar sein. Bestehende Anwendungen werden in den meisten Fällen Reengineering erfordern, um sie Multicore-fähig zu machen.
41 Weitere Informationen (1) Amdahl s & Gustafson s law: ahls.html Parallel Computing on msdn: Concurrency & Coordination Runtime (CCR) und Decentralized Software Services (DSS)
42 Weitere Informationen (2) PLINQ: Parallel FX team blog: Multicore Crisis? S. Gochman et al, Introduction to Intel Core Duo Processor Architecture, Intel Technology Journal, 10(2), Seite 89 97, 2006
43 Weitere Informationen (3) Joe Duffy, Concurrent Programming on Windows: Architecture, Principles, and Patterns, Addison Wesley, ISBN-13: , 958 Seiten esources.html M. Herlihy, Nir Shavit, The Art of Multiprocessor Programming, Morgan Kaufmann, ISBN-13: , 528 Seiten T. Rauber, G. Rünger, Multicore: Parallele Programmierung, Springer, ISBN: , 164 Seiten
44 COMPUTER ZEITUNG Multicore-Herausforderung liegt in der Programmierung, Von Walter F. Tichy/rr 39_ha_CZ.html?null&print=1
45 Vielen Dank! Fragen???
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Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?
Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrParallel Computing in.net
Marc Andre Zhou Parallel Computing in.net Multicore-Programmierung von.net 2.0 bis 4.0 1 1.1 1.2 1.3 1.4 1.5 1.6 2 2.1 Einleitung Für wen ist dieses Buch? Ziele des Buchs Parallel Computing: Warum? 1.3.1
MehrDie 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,
MehrC# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 7: Prozesse und Möglichkeiten
C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 7: Prozesse und Möglichkeiten 1/27/2012 1 Di Process-Class Callbacks DirectX Webservices ASP.NET C# 4 Tasks WP 7 Tag 7 Prozesse
MehrIch liebe Java && Ich liebe C# Rolf Borst
Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String
MehrMulti-Threading. Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de
Multi-Threading Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de Einführung in Threads Threads synchronisieren ThreadPools Thread = unabhängiger Ausführungspfad, der gleichzeitig
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
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
MehrWEBINAR@LUNCHTIME THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ
WEBINAR@LUNCHTIME THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ HERZLICH WILLKOMMEN BEI WEBINAR@LUNCHTIME Moderation Anne K. Bogner-Hamleh SAS Institute GmbH Education Consultant Training
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
MehrBegleitendes Praktikum zur Vorlesung Künstliche Intelligenz
Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz SS12 Kontakt Internet: http://cvpr.uni-muenster.de/teaching/ss12/ki/ RSS-Feed Kalender Dipl.-Math. Michael Schmeing m.schmeinguni-muenster.de
MehrLOAD TESTING 95% BRAUCHEN ES, 5 % MACHEN ES: LOAD TESTING MIT VS LEICHTGEMACHT NICO ORSCHEL MVP VS ALM, CONSULTANT
LOAD TESTING 95% BRAUCHEN ES, 5 % MACHEN ES: LOAD TESTING MIT VS LEICHTGEMACHT NICO ORSCHEL MVP VS ALM, CONSULTANT AIT GmbH & Co. KG Ihre Software effizienter entwickelt. ÜBERSICHT GRÜNDE UND ZEITPUNKT
MehrCORBA. 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
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
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrPowermanager Server- Client- Installation
Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server
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
MehrDynamic Ressource Management
best Open Systems Day Fall 2006 Dynamic Ressource Management Unterföhring Marco Kühn best Systeme GmbH kuehn@best.de Agenda Überblick Dynamic Resource Pools und FSS Dynamic Resource Memory RCAP Oracle
MehrNico Orschel AIT GmbH & Co KG Marc Müller 4tecture GmbH. 95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
Nico Orschel AIT GmbH & Co KG Marc Müller 4tecture GmbH 95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht Übersicht Gründe und Zeitpunkt für Lasttests Lasttests on Premise
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrStarthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum
Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit
MehrKap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.
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
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
MehrWindows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein
Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach
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
MehrNebenläufige Programmierung
Nebenläufige Programmierung Perspektiven der Informatik 27. Januar 2003 Gert Smolka Telefon-Szenario Eine Telefonzelle Mehrere Personen wollen telefonieren Immer nur eine Person kann telefonieren Ressource
MehrWillkommen 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
MehrEffiziente 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
MehrInstallation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
Mehrpeer-to-peer Dateisystem Synchronisation
Ziel Realisierungen Coda Ideen Fazit Literatur peer-to-peer Dateisystem Synchronisation Studiendepartment Informatik Hochschule für Angewandte Wissenschaften Hamburg 30. November 2007 Ziel Realisierungen
MehrRT Request Tracker. Benutzerhandbuch V2.0. Inhalte
RT Request Tracker V2.0 Inhalte 1 Was ist der RT Request Tracker und wo finde ich ihn?...2 2 Was möchten wir damit erreichen?...2 3 Wie erstelle ich ein Ticket?...2 4 Wie wird das Ticket abgearbeitet?...4
MehrA1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac
A Desktop Security Installationshilfe Symantec Endpoint Protection. für Windows/Mac Inhalt. Systemvoraussetzung & Vorbereitung S. Download der Client Software (Windows) S. 4 Installation am Computer (Windows)
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
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
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
MehrLizenzierung von Windows Server 2012
Lizenzierung von Windows Server 2012 Das Lizenzmodell von Windows Server 2012 Datacenter und Standard besteht aus zwei Komponenten: Prozessorlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrTELEMETRIE EINER ANWENDUNG
TELEMETRIE EINER ANWENDUNG VISUAL STUDIO APPLICATION INSIGHTS BORIS WEHRLE TELEMETRIE 2 TELEMETRIE WELCHE ZIELE WERDEN VERFOLGT? Erkennen von Zusammenhängen Vorausschauendes Erkennen von Problemen um rechtzeitig
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
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
MehrMikrocontroller Grundlagen. Markus Koch April 2011
Mikrocontroller Grundlagen Markus Koch April 2011 Übersicht Was ist ein Mikrocontroller Aufbau (CPU/RAM/ROM/Takt/Peripherie) Unterschied zum Mikroprozessor Unterschiede der Controllerarten Unterschiede
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
MehrC++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang
Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
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
MehrDiplomarbeit Antrittsvortrag
Diplomarbeit Antrittsvortrag Christian Müller Run-time byte code compilation, interpretation and optimization for Alice Betreuer: Guido Tack Verantwortlicher Prof.: Gert Smolka Die nächsten 15 Minuten...
MehrVorwort... 11 Azure Cloud Computing mit Microsoft... 12 Danksagungen... 13 Kontakt zum Autor... 13
Inhaltsverzeichnis Vorwort... 11 Azure Cloud Computing mit Microsoft... 12 Danksagungen... 13 Kontakt zum Autor... 13 Einleitung... 15 Zielgruppe... 16 Aufbau... 16 Inhalt der einzelnen Kapitel... 17 Systemanforderungen...
MehrArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung
Marko Apfel, Team Entwicklung Agenda Was ist COM Was sind die ArcObjects Warum Delphi mit ArcObjects Wie greift man auf die ArcObjects mit Delphi zu Wo gibt es Informationen 2 Agenda Was ist COM Was sind
MehrWebService in Java SE und EE
Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrProjektseminar Parallele Programmierung
HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20
MehrDesign Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi
Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster
MehrAutomatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)
HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2
MehrBrainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen
Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit
Mehrmobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005
Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.
MehrFolgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:
Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal
MehrÜbungen zu Softwaretechnik
Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte
MehrKomponentenbasierter Taschenrechner mit CORBA
Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten
MehrAzure und die Cloud. Proseminar Objektorientiertes Programmieren mit.net und C# Simon Pigat. Institut für Informatik Software & Systems Engineering
Azure und die Cloud Proseminar Objektorientiertes Programmieren mit.net und C# Simon Pigat Institut für Informatik Software & Systems Engineering Agenda Was heißt Cloud? IaaS? PaaS? SaaS? Woraus besteht
Mehr360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland
360.NET Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland Was ist.net? Eine Strategie Eine Plattform Eine Laufzeitumgebung Eine Software-Sammlung Ein Set von Services Warum so ein Framework?
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
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++,
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrVerteilte Systeme CS5001
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,
MehrThomas Claudius Huber. Asynchrone Programmierung mit C#
Thomas Claudius Huber Asynchrone Programmierung mit C# Thomas Claudius Huber Principal Consultant @ Trivadis AG Trainer, Coach, Developer, Architect www.thomasclaudiushuber.com Spezialisiert auf WPF, XAML,
MehrImplementierung der neuen Plattform für "Customized Investment Reporting"
Öffentlich Implementierung der neuen Plattform für "Customized Investment Reporting" Datum: 23. September 2010 Erstellt von: Ashish R. Arondekar IT-Programm Customized Investment Reporting Übergreifende
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
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
MehrEinreichung zum Call for Papers
Internet: www.aitag.com Email: info@aitag.com Einreichung zum Call for Papers Kontaktinformationen Sven Hubert AIT AG Leitzstr. 45 70469 Stuttgart Deutschland http://www.aitag.com bzw. http://tfsblog.de
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
MehrSRH Hochschule Heidelberg
SRH Hochschule Heidelberg Fachbereich Informatik Vertriebssysteme / CRM Johannes Dipl. Inf. (FH) Hoppe Johannes Hoppe MSP WCF Vorlesung 25.03.2009 90 Minuten, 8 Teilnehmer Dipl. Inf. (FH) Johannes Hoppe
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrEntwicklung der Programmiersprache C#
Language Day HDM 2015 Entwicklung der Programmiersprache C# Referent: Mikhail Orleanskiy, IT-Designers GmbH (orleanskiy@it-designers.de) Stand: 6. November 2015 Eine Präsentation der IT-Designers Gruppe
MehrInstallation SQL- Server 2012 Single Node
Installation SQL- Server 2012 Single Node Dies ist eine Installationsanleitung für den neuen SQL Server 2012. Es beschreibt eine Single Node Installation auf einem virtuellen Windows Server 2008 R2 mit
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrPOIS-Praktikum 2007. Prozessimplementierung, RosettaNet PIPs 3A
POIS-Praktikum 2007 Prozessimplementierung, RosettaNet PIPs 3A Manuel Blechschmidt, David Foerster, Michael Leben, Mike Nagora, Jonas Rogge, Paul Römer Gliederung 2 Einleitung Was war unsere Aufgabe? Was
MehrLabVIEW Power Programming. Amadeo Vergés www.zuehlke.com
LabVIEW Power Programming Aus der Praxis für die Praxis Amadeo Vergés www.zuehlke.com LabVIEW Power Programming Aus der Praxis für die Praxis the same procedure as every year? Running gags in der LabVIEW
Mehr.NET Task Parallel Library: Eine Rundtour
.NET Parallel Library: Eine Rundtour Luc Bläser Hochschule für Technik Rapperswil Parallel 2015 Konferenz 23. Apr. 2015, Karlsruhe Die.NET Parallel Library (TPL) Stand der Technik für.net Parallelprogrammierung
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.
MehrEinführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann
Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework
MehrEinfü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
MehrAutorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente
Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung
MehrDas in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden.
Zusatzmaterial zum Buch "Algorithmen kompakt und verständlich" Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor übernimmt
MehrJava Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung
Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java
MehrTechnische Dokumentation SilentStatistikTool
Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...
MehrSophia Business Leitfaden zur Administration
Sophia Business Leitfaden zur Administration 1. Anmelden... 2 2. Zugangscode neu anlegen... 3 3. Zugangscodes verwalten... 4 4. Ergebnisse anzeigen... 5 5. Installation und technische Hinweise... 6 a.
MehrWhite 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
MehrLizenzierung von System Center 2012
Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im
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
MehrGame Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling
Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:
Mehr