Multicore Parallelismus! in modernen CPUs
|
|
|
- Hansi Bauer
- vor 10 Jahren
- Abrufe
Transkript
1 Multicore Parallelismus! in modernen CPUs Johannes Hofmann, Seminar Architekturen von Multi- und Vielkern-Prozessoren Universität Erlangen-Nürnberg Lehrstuhl für Rechnerarchitektur
2 Informatik 3 HPC Cluster! Doku für Cluster unter Auszug aus der Liste der Systeme wiki/systemlist Nomad (Dual-Socket Sandy Bridge-EP) 2x Xeon Phi faui36a/b sind Cluster-headnodes faui36a:~ hofmann$ lsgpu faui36g ; geforce_gtx580 ; 1 faui36g ; geforce_gtx670 ; 1 faui36g ; tesla_c1060 ; 1 faui36i ; tesla_c2050 ; 1 faui36i ; tesla_c2050ecc ; 1 faui36i ; tesla_k20 ; 4 faui36j ; altera_de4 ; 1 faui36j ; geforce_gtx480 ; 1 faui36j ; radeon7970 ; 1 faui36j ; tesla_c1060 ; 1 2
3 SLURM! Auf Headnode einloggen ssh faui36b Submit interactive Job srun -w nomad -c1 -t100:00 --pty bash Hints nomad Host to request -c1 Number of requested cores (1 to develop/compile, 32 to measure) -t100:00 Reservation Time, 100 minutes is maximum (Don t forget to save your work, if your time runs out, you ll be kicked from the system!) --pty bash Interactive Job (Problems with the terminal? Connect manually in another terminal: ssh nomad) 3
4 Parallelismus in modernen x86 CPUs! Multicore Parallelismus Single Instruction Multiple Data (SIMD) Vektorisierung Instruction Level Parallelismus (ILP) Simultaneous Multithreading (SMT) 4
5 Aufbau unseres Sandy Bridge-EP Systems nomad! Two-Socket Sandy Bridge-EP System (2x Xeon E5-2670) Two NUMA Domains Eight Cores per Socket Nominal CPU Frequency: 2.6 GHz 2-SMT per Core 6 Execution Units per Core (Superscalar Design) Advanced Vector Extensions (AVX) Dedicated L1+L2 cache per Core Cores communicate via shared L3 cache Memory MC Package 0 shared LLC QPI QPI QPI QPI Package 1 shared LLC MC Memory 5
6 8 Kern Sandy Bridge EP: Processor Package! 6
7 Ausnutzen von Multicore Parallelismus! OpenMP basiert auf fork-join Programmiermodel Programme starten mit nur einem Thread Zusätzliche Threads (thread team) werden für parallele Regionen geforkt Implizite Barriere am Ende einer parallelen Region Join nach paralleler Region 7
8 OpenMP! Ziele von OpenMP Sehr einfache Handhabung Sequentielle Äquivalenz Paralleles Programm produziert die selben Ergebnisse wie sequentielle Variante Inkrementelle Parallelisierung Ein bereits vorhandenes Programm soll sich leicht Schritt-für-Schritt parallelisieren lassen 8
9 OpenMP! Beispiel: Hello Word! Sequentielle Variante $ cat hello.c #include <stdio.h> int main(int argc, char **argv) { printf( Hello World!\n ); $ gcc -o hello hello.c $./hello Hello World! $ Parallele Variante $ cat hello_omp.c #include <omp.h> #include <stdio.h> int main(int argc, char **argv) { #pragma omp parallel { printf( Hello World!\n ); $ gcc fopenmp -o hello_omp \ helloomp.c $./hello_omp Hello World! Hello World!... 9
10 OpenMP! Zahl der Threads wird von Laufzeitumgebung festgesetzt Kann vom Programmierer beeinflusst werden Umgebungsvariable OMP_NUM_THREADS $ OMP_NUM_THREADS=3./hello_omp Hello World Hello World Hello World In Compiler-Direktive im C Code #pragma omp parallel num_threads(3) 10
11 OpenMP Threadzahl zur Laufzeit! #include <stdio.h> #include <omp.h> int main(int argc, char **argv) { #pragma omp parallel num_threads(4) { int my_num, total_threads; my_num = omp_get_thread_num(); total_threads = omp_get_num_threads(); printf( Hello World from thread %d of %d!\n, my_num, total_threads); Hello World from thread 2 of 4! Hello World from thread 0 of 4! Hello World from thread 3 of 4! Hello World from thread 1 of 4! 11
12 OpenMP Private vs. Shared Variables! #include <stdio.h> #include <omp.h> int main(int argc, char **argv) { int a; /* shared variable */ #pragma omp parallel { int b; /* private variable */ a = omp_get_thread_num(); // Probably not what you want b = omp_get_thread_num(); // Okay Race Condition/Wettlaufsituation 12
13 OpenMP Worksharing Constructs! In OpenMP gibt es mehrere Pragmas, die dem Programmierer die Aufgabe der Arbeitsverteilung und das Thread-Management erleichtern, z.b. Parallel for Construct Section Constructs Single Constructs 13
14 OpenMP For Construct! void add(double *A, double *B, double *C, int N) { #pragma omp parallel { #pragma omp for for (int i=0; i<n; ++i) A[i] = B[i] + C[i]; Thread Start Ende Aufteilung mit 4 Threads, N =
15 OpenMP Section Construct! Programmcode wird in verschiedene Sektionen aufgeteilt Jede Sektion wird von genau einem Thread bearbeitet #pragma omp sections { #pragma omp section { // executed by one thread //... #pragma omp section { // executed by another thread //... /... 15
16 OpenMP Section Construct Beispiel! Parallel mit OpenMP Sequentiell for (int i=0; i<n; ++i) { sum+=a[i]; prod*=a[i]; #pragma omp parallel { #pragma omp sections { #pragma omp section { for (int i=0; i<n; ++i) sum+=a[i]; #pragma omp section { for (int i=0; i<n; ++i) prod*=a[i]; 16
17 OpenMP Single Construct! Programmcode in einer parallelen Region, der nur von einem Thread ausgeführt wird. Zum Beispiel zum Schreiben auf shared Variables #include <stdio.h> #include <omp.h> int main(int argc, char **argv) { int a; /* shared variable */ #pragma omp parallel { int b; /* private variable */ #pragma omp single { a = omp_get_thread_num(); // Okay b = omp_get_thread_num(); // Okay 17
18 OpenMP Worksharing Constructs! Vereinfachte Schreibweise der Worksharing Constructs #pragma omp parallel { #pragma omp <for, section, single> { kann mit #pragma omp parallel <for, section single> { abgekürzt werden 18
19 OpenMP Worksharing Constructs! Beispiel void add(double *A, double *B, double *C, int N) { #pragma omp parallel { #pragma omp for for (int i=0; i<n; ++i) A[i] = B[i] + C[i]; void add(double *A, double *B, double *C, int N) { #pragma omp parallel for for (int i=0; i<n; ++i) A[i] = B[i] + C[i]; 19
20 OpenMP Memory Management! Variablen die außerhalb der parallel Region deklariert wurden, sind per default gesharte Variablen int my_id=0; #pragma omp parallel { my_id=omp_get_thread_num(); // Bad private(<list>) bewegt den Compiler dazu private Kopien (initial value undefined!) von Variablen zu erzeugen int my_id=0; #pragma omp parallel private(my_id) { my_id=omp_get_thread_num(); // Okay 20
21 OpenMP Memory Management! Weitere Möglichkeiten firstprivate(<list>) Wie private(<list>), jedoch wird die Kopie der Variable mit dem globalen Wert der Variable initialisiert lastprivate(<list>) Nur für for-loops. Der Wert aus der letzten Schleifeniteration wird in die globale Variable kopiert int value; #pragma omp parallel for lastprivate(value) for (int i=0; i<n; ++i) value=i; // i is now set to N-1 21
22 OpenMP Reduction Clause! Reduktion aggregiert Werte mit hilfe eines binären Operators zu einem Ergebnis double sum=0.0f; #pragma omp parallel for reduction(+:sum) for (int i=0; i<n; ++i) sum+=a[i]; Mögliche Operatoren: +, -, *, &,, ^, &&, 22
23 OpenMP Synchronisierung! Synchronisierungskonstrukte #pragma omp flush [(<list>)] Sorgt für Speicherkonsistenz aller/einer Liste von sichtbaren Variablen für alle Threads Wird normalerweise automatisch vom Compiler eingefügt #pragma omp barrier Threads warten an dieser Stelle aufeinander #pragma omp master {... Sektion wird nur vom Master-Thread ausgeführt #pragma omp critical {... Sektion darf zu bestimmten Zeitpunkt nur von einem Thread betreten werden Serialisierung 23
24 OpenMP Synchronisierung! Synchronisierungskonstrukte In den meisten Fällen sind die High-Level Synchronisierungskonstrukte ausreichend Falls die gewünschte Synchronisation damit nicht erzielt werden kann, gibt es auch low-level locking Konstrukte, z.b. void omp_init_lock(omp_lock_t *lock) void omp_set_lock(omp_lock_t *lock) 24
25 OpenMP Scheduling! #pragma omp parallel for-loop Konstrukt verteilt die Schleifeniterationen zwischen den Threads Eine passende Scheduling-Strategie ist sinnvoll Ist die Arbeit, die in jeder Iteration geleistet werden muss identisch, so bietet sich statisches Scheduling an Ist die Arbeit variable, so ist dynamisches Scheduling meisst sinnvoller Die Scheduling-Strategie kann vom Programmierer gewählt werden #pragma omp parallel for schedule (<sched> [,chunk]) sched: static, dynamic, guided, runtime chunk: Ganzzahliger Wert 25
26 OpenMP Scheduling! schedule(static [,chunk]) Iterationen werden in Blöcke zu je chunk Iterationen zusammengefasst Blöcke werden gleichmäßig auf die Threads verteilt schedule(dynamic[,chunk]) Iterationen werden in Blöcke zu je chunk Iterationen zusammengefasst Zu Beginn erhält jeder Thread einen Block, der Rest der Blöcke befindet sich in einer Warteschlange Immer wenn ein Thread einen Block bearbeitet hat, holt er sich einen neuen Block aus der Warteschlange Im Gegensatz zum static Scheduling verursacht dynamic Scheduling einen Overhead zur Laufzeit 26
27 OpenMP Scheduling! guided(static [,chunk]) Wie dynamisches Scheduling, allerdings zu Beginn mit großer Blockgröße (à seltenerer Zugriff auf Queue, wenn Blöcke größer) Blockgröße nähert sich mit der Zeit chunk an schedule(runtime) Scheduling-Strategie ist bei der Übersetzung des Programms noch nicht festgelegt Wird zur Laufzeit über die Umgebungsvariable OMP_SCHEDULE gesetzt $ OMP_SCHEDULE= static, 1024./program 27
28 OpenMP Further Reading! OpenMP Spezifikation specifications/ Online OpenMP Tutorial 28
29 Thread Pinning! Prozessor wird von mehreren Programmen verwenden Selbst wenn kein weiterer User eingeloggt ist und keine weiteren Anwendungen laufen ist der Kernel aktiv, der regelmäßig die Ausführung eures Programms unterbricht Danach wird euer Programm idealerweise auf dem selben Core wieder gestartet, auf dem es vor der Unterbrechung lief Im Cache dieses Cores befinden sich noch die Daten, auf die euer Programm zugreift Dies muss aber nicht der Fall sein, euer Programm kann auch auf einem anderen Core weiterlaufen Keine Daten im Cache, müssen erst aus dem anderen Cache transferiert werden Durch Thread-Pinning teilt ihr dem Betriebssytem eine Liste von Kernen (genauer: Hardware threads) mit, auf denen euer Programm ausgeführt werden darf So könnt ihr verschiede Threads eures Programms an bestimmte Kerne binden 29
30 Thread Pinning! LIKWID: Entwickelt am RRZE der FAU Schweizer Armeemesser für HPC likwid-topology Zeigt Informationen über Node likwid-pin Affinität einstellen likwid-bench - Microbenchmarks likwid-perfctr Auslesen der Hardware Performance Counter likwid-powermeter Energieverbrauch messen Alternativ zu LIKWID kann auch das Thread Affinity Interface verwendet werden Update/compiler_c/optaps/common/optaps_openmp_thread_affinity.htm 30
31 Thread Pinning! Ohne Argumente werden alle logischen Cores benutzt likwid-pin./binary Beispiele likwid-pin c S0:0-7 (Socket, Package, Chip) likwid-pin c N:0-15 (Beide Sockets, d.h. ganze Node) likwid-pin c N:0-31 (ganze Node mit SMT) Package 0 Package 1 Memory MC shared LLC QPI QPI QPI QPI shared LLC MC Memory Mehr Infos 31
32 Parallelismus in modernen x86 CPUs! Multicore Parallelismus Single Instruction Multiple Data (SIMD) Vektorisierung Instruction Level Parallelismus (ILP) Simultaneous Multithreading (SMT) 32
33 Single Instruction Multiple Data (SIMD) Vektorisierung!! Starting with Sandy Bridge we get Advanced Vector Extensions (AVX) (256b SIMD), which extends the previous Streaming SIMD Extensions (SSE) (128b SIMD): A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] 32 bits (1 float) A[0] A[1] A[2] A[3] 256 bits ymmx xmmx A[0] A[1] A[2] A[3] 64 bits (1 double) A[0] 128 bits 128 bits A[1] 256 bits Using AVX, we can perform four operations with a single instruction. core 16 B L1 cache 32 B L2 cache 2x16 B 33
34 Parallelismus in modernen x86 CPUs! Multicore Parallelismus Single Instruction Multiple Data (SIMD) Vektorisierung Instruction Level Parallelismus (ILP) Simultaneous Multithreading (SMT) 34
35 ILP / Superscalarity! Superscalar Design: Six issue ports/execution units that can execute instructions simultaneously E.g. Floating Point-Add (Port 1) and Floating-Point Mult (Port 0) 4 uop/cycle frontend limit 256KB Unified L2 Cache 256 bit Complex Decoder 128 bit Simple Decoder Port 0 Port 1 Port 5 Port 2 Port 3 Port 4 ALU V-MUL V-SHUF Fdiv 256- FP MUL 256- FP Blend 32KB L1 Instruction Cache Predecode ALU V-ADD V-SHUF 256- FP ADD Instruction Queue Simple Decoder ALU JMP 256- FP Shuf 256- FP Bool 256- FP Blend Simple Decoder Decoded Instruction Queue Renamer / Scheduler / Dispatcher Load Data AGU MSROM Load Data AGU 1536 uop (L0) Cache Store Data Memory Control 256 bit 128 bit 256 bit 32KB L1 Data Cache 35
36 Parallelismus in modernen x86 CPUs! Multicore Parallelismus Single Instruction Multiple Data (SIMD) Vektorisierung Instruction Level Parallelismus (ILP) Simultaneous Multithreading (SMT) 36
37 Simultaneous Multithreading! Control Logic per Core is duplicated (program counter, registers, etc.) 256 bit 32KB L1 Instruction Cache 128 bit Predecode Instruction Queue 2-SMT: Core Resources (execution units) are shared between two hardware threads 256KB Unified L2 Cache Complex Decoder Simple Decoder Simple Decoder Simple Decoder Decoded Instruction Queue Renamer / Scheduler / Dispatcher MSROM 1536 uop (L0) Cache Port 0 Port 1 Port 5 Port 2 Port 3 Port 4 ALU V-MUL V-SHUF Fdiv 256- FP MUL 256- FP Blend ALU V-ADD V-SHUF 256- FP ADD ALU JMP 256- FP Shuf 256- FP Bool 256- FP Blend Load Data AGU Load Data AGU Store Data Memory Control 256 bit 128 bit 256 bit 32KB L1 Data Cache 37
Intel Xeon Phi. Praktikum Parallele Rechnerarchitekturen May 13,
Intel Xeon Phi Praktikum Parallele Rechnerarchtitekturen Praktikum Parallele Rechnerarchitekturen May 13, 2014 1 Overview Aufbau & Programmierung State-of-the-Art Manycore Chip HPC Tools Performance-Modellierung
Master-Thread führt Programm aus, bis durch die Direktive
OpenMP seit 1998 Standard (www.openmp.org) für die Shared-Memory Programmierung; (Prä-)Compiler für viele Systeme kommerziell oder frei (z.b. Omni von phase.hpcc.jp/omni) verfügbar Idee: automatische Generierung
OpenMP 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
Parallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP - Eine kurze Einführung - 11.06.2003 RRZN Kolloquium SS 2003 1 Gliederung 1. Grundlagen 2. Programmiermodell 3. Sprachkonstrukte 4. Vergleich MPI und OpenMP 11.06.2003
Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome
Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, [email protected]) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2
1. Einführung in OpenMP
1. Einführung in OpenMP Übersicht Einführung Homogene und inhomogene Arbeitsverteilung Rekursive Parallelität Beispiele Parallele Programmierung 1 Nicolas Maillard, Marcus Ritt 1 Überblick OpenMP: Vereinfachte
Threads und OpenMP. Frank Mietke <[email protected]> Cluster- & Gridcomputing Frank Mietke 7/4/04
Threads und OpenMP Frank Mietke 1 Ziel der Vorlesungen Einführung in Threads Programmierung mit Threads Einführung in OpenMP Programmierung mit OpenMP 2 Was ist
OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009
- Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange
Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
Systeme 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
Dämon-Prozesse ( deamon )
Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout
MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven
MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop
Einige Grundlagen zu OpenMP
Einige Grundlagen zu OpenMP Stephanie Friedhoff, Martin Lanser Mathematisches Institut Universität zu Köln 22. Juni 2016 Überblick Was ist OpenMP? Basics Das OpenMP fork-join-modell Kompilieren und Ausführen
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Bitte 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
Computerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
Beispiel: Schleifenparallelisierung
Beispiel: Schleifenparallelisierung for (i = 0; i high) { printf ( Exiting during iteration %d\n,i); break; for (j=low;j
Version 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.
Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)
NetWorker - Allgemein Tip #293, Seite 1/6 Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux) Dies wird offiziell nicht von unterstützt!!! Sie werden also hierfür keinerlei Support erhalten. Wenn man
Lehrer: 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
Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)
funktion in Open-Xchange richtig nutzen (PC-Support) 1.) Bei Open-Xchange mit der RUMMS-Kennung einloggen unter http://ox.uni-mannheim.de 2.) Links oben im Menü den aufrufen: 3.) In der Mitte oben bei
Zä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 --
Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1
Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated
Parallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2008 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung
Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading
Leistungskurs C++ Multithreading Threading mit Qt Plattformübergreifende Thread-Klasse Sehr einfach zu benutzen Leider etwas schlecht dokumentiert Leistungskurs C++ 2 QThread Plattformübergreifende Thread-Klasse
Objektorientierte 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/
Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)
Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier) Firewall über Seriellen Anschluss mit Computer verbinden und Netzteil anschliessen. Programm Hyper Terminal (Windows unter Start Programme
Anbindung des eibport an das Internet
Anbindung des eibport an das Internet Ein eibport wird mit einem lokalen Router mit dem Internet verbunden. Um den eibport über diesen Router zu erreichen, muss die externe IP-Adresse des Routers bekannt
Websites mit Dreamweaver MX und SSH ins Internet bringen
Websites mit Dreamweaver MX und SSH ins Internet bringen 1. Vorüberlegungen Dreamweaver stellt Funktionen bereit, um Websites im Internet zu veröffentlichen. Um diese Funktionen auf Servern des Rechenzentrums
Übungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
Einführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen
Installation 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,
C++ Tutorial: Timer 1
C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und
Das neue Volume-Flag S (Scannen erforderlich)
NetWorker 7.4.2 - Allgemein Tip 2, Seite 1/5 Das neue Volume-Flag S (Scannen erforderlich) Nach der Wiederherstellung des Bootstraps ist es sehr wahrscheinlich, daß die in ihm enthaltenen Informationen
Step by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
Objektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
Proxy. Krishna Tateneni Übersetzer: Stefan Winter
Krishna Tateneni Übersetzer: Stefan Winter 2 Inhaltsverzeichnis 1 Proxy-Server 4 1.1 Einführung.......................................... 4 1.2 Benutzung.......................................... 4 3 1
Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene
Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg Prozess-Monitoring auf CPU-Takt Ebene Einleitung Unser Arbeitsgebiet: ALICE Teilchenphysik Experiment Cluster
Binä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
6. Der OpenMP Standard. Direktiven-basiertes API zur Programmierung von Parallelrechnern mit gemeinsamem Speicher für FORTRAN, C und C++
6. Der OpenMP Standard Direktiven-basiertes API zur Programmierung von Parallelrechnern mit gemeinsamem Speicher für FORTRAN, C und C++ OpenMP Programmiermodell OpenMP Direktiven basieren in C and C++
Informationen zum neuen Studmail häufige Fragen
1 Stand: 15.01.2013 Informationen zum neuen Studmail häufige Fragen (Dokument wird bei Bedarf laufend erweitert) Problem: Einloggen funktioniert, aber der Browser lädt dann ewig und zeigt nichts an Lösung:
Informatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
Grundlagen 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
OSEK-OS. Oliver Botschkowski. [email protected]. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab
OSEK-OS Oliver Botschkowski [email protected] PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung Motivation Ziele Vorteile Einführung in OSEK-OS Architektur Task Management Interrupt
OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer
OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell
Übungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
BMC Control M Tipps & Tricks 2. Martin Dienstl, BMC Software [email protected]
BMC Control M Tipps & Tricks 2 Martin Dienstl, BMC Software [email protected] CONTROL M Tipps&Tricks Topics Usability Nützliche Systemparameter Copyright 3/1/2012 BMC Software, Inc 2 Quantitative
Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe
Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003
Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: [email protected]
> Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: [email protected] 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert
Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8
Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8 Neue Funktionen im GUI ab V 2.x für PC-DMIS Wie funktioniert GUI für PC-DMIS? GUI heißt Grafical User Interface. Das bedeutet grafische Benutzer
Web Interface für Anwender
Ing. G. Michel Seite 1/5 Web Interface für Anwender 1) Grundlagen: - Sie benötigen die Zugangsdaten zu Ihrem Interface, welche Sie mit Einrichtung des Servers durch uns oder Ihren Administrator erhalten
Lokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann [email protected] 12.12.2006 Agenda Benötigte Komponenten Installation
DLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
Windows Server 2012 R2 Essentials & Hyper-V
erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
Benutzerverwaltung 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...
How-to: Webserver NAT. Securepoint Security System Version 2007nx
Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver
Grundlagen 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)
The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
S7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
Tutorial - www.root13.de
Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk
ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank
Tutorials: Übertragung von Fotos (+ ) auf einen anderen Computer Export der In dieser Lektion erfahren Sie, wie Sie am effektivsten Fotos von einem Computer auf einen anderen übertragen. Wenn Sie Ihre
Online Newsletter III
Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase
Die Sandy-Bridge Architektur
Fakultät Informatik - Institut für Technische Informatik - Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Die Sandy-Bridge Architektur René Arnold Dresden, 12. Juli 2011 0. Gliederung 1.
SolarWinds Engineer s Toolset
SolarWinds Engineer s Toolset Monitoring Tools Das Engineer s Toolset ist eine Sammlung von 49 wertvoller und sinnvoller Netzwerktools. Die Nr. 1 Suite für jeden Administrator! Die Schwerpunkte liegen
Psyprax GmbH. Netzwerk Installation unter XP. Wichtig für alle Netzwerkinstallationen: Psyprax GmbH
Netzwerk Installation unter XP Wichtig für alle Netzwerkinstallationen: Während des Betriebs ist es nicht möglich die Firebird-Datenbank (psyprax.fdb usw.) zu kopieren. Insbesondere Techniken wie die Festplattenspiegelung
Einfügen von Bildern innerhalb eines Beitrages
Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de
Einrichtung des WS_FTP95 LE
Einrichtung des WS_FTP95 LE Das Herunterladen des Programms (siehe Seite Hochladen) dauert durch die Größe von 656 KB auch mit dem Modem nicht lange. Im Ordner der herunter geladenen Dateien erscheint
Remote Control - LeCroy Oszilloskop WaveSurfer 3000 mit LabVIEW via VICP LAN-Schnittstelle
Remote Control - LeCroy Oszilloskop WaveSurfer 3000 mit LabVIEW via VICP LAN-Schnittstelle Damit LeCroy Oszilloskope der Serie WaveSurfer 3000 mit LabVIEW via LAN (VICP) gesteuert werden können werden
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
Virtueller 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,
Architektur Verteilter Systeme Teil 2: Prozesse und Threads
Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =
Programmieren 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
4D 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
Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis
Kommunikationsübersicht Inhaltsverzeichnis Kommunikation bei Einsatz eines MasterServer... 2 Installation im... 2 Installation in der... 3 Kommunikation bei Einsatz eines MasterServer und FrontendServer...
Innere 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
Prof. 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
Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
XING und LinkedIn-Integration in das erecruiter-bewerberportal
XING und LinkedIn-Integration in das erecruiter-bewerberportal Sowohl für XING als auch für LinkedIn müssen sog. Keys beantragt werden, die im erecruiter hinterlegt werden. Im Folgenden sind die Schritte
