Multicore Parallelismus! in modernen CPUs

Größe: px
Ab Seite anzeigen:

Download "Multicore Parallelismus! in modernen CPUs"

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

Mehr

Master-Thread führt Programm aus, bis durch die Direktive

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

Mehr

OpenMP am Beispiel der Matrizenmultiplikation

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

Mehr

Parallele Programmierung mit OpenMP

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

Mehr

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

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, [email protected]) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

1. Einführung in OpenMP

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

Mehr

Threads und OpenMP. Frank Mietke <[email protected]> Cluster- & Gridcomputing Frank Mietke 7/4/04

Threads und OpenMP. Frank Mietke <frank.mietke@informatik.tu-chemnitz.de> 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

Mehr

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

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

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

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;

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

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

Mehr

Dämon-Prozesse ( deamon )

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

Mehr

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

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

Mehr

Einige Grundlagen zu OpenMP

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

Mehr

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: 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

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

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.

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

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

Mehr

Computerarithmetik ( )

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

Mehr

Beispiel: Schleifenparallelisierung

Beispiel: Schleifenparallelisierung Beispiel: Schleifenparallelisierung for (i = 0; i high) { printf ( Exiting during iteration %d\n,i); break; for (j=low;j

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

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.

Mehr

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

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

Mehr

Lehrer: Einschreibemethoden

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

Mehr

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

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

Mehr

Zählen von Objekten einer bestimmten Klasse

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

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

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

Mehr

Parallele Programmierung mit OpenMP

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

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

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

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

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/

Mehr

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

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

Mehr

Anbindung des eibport an das Internet

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

Mehr

Websites mit Dreamweaver MX und SSH ins Internet bringen

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

Mehr

Übungen zu C++ Kapitel 1

Ü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

Mehr

Einführung in die C++ Programmierung für Ingenieure

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

Mehr

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

Mehr

Installation OMNIKEY 3121 USB

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,

Mehr

C++ Tutorial: Timer 1

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

Mehr

Das neue Volume-Flag S (Scannen erforderlich)

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

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

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

Mehr

Objektbasierte Entwicklung

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

Mehr

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

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

Mehr

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

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

Mehr

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++ 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++

Mehr

Informationen zum neuen Studmail häufige Fragen

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:

Mehr

Informatik Grundlagen, WS04, Seminar 13

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

Mehr

Grundlagen von Python

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

Mehr

OSEK-OS. Oliver Botschkowski. [email protected]. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. 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

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

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

Mehr

Übungen zur Softwaretechnik

Ü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

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

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 **

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

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

Mehr

BMC Control M Tipps & Tricks 2. Martin Dienstl, BMC Software [email protected]

BMC Control M Tipps & Tricks 2. Martin Dienstl, BMC Software martin_dienstl@bmc.com 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

Mehr

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

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

Mehr

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: [email protected]

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de > Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: [email protected] 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion

Mehr

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

Mehr

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

Mehr

Web Interface für Anwender

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

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

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

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

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:

Mehr

Windows Server 2012 R2 Essentials & Hyper-V

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

Mehr

Einführung in die Programmierung

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

Mehr

Benutzerverwaltung Business- & Company-Paket

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

Mehr

How-to: Webserver NAT. Securepoint Security System Version 2007nx

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

Mehr

Grundlagen verteilter Systeme

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)

Mehr

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

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

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

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

Mehr

Tutorial - www.root13.de

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

Mehr

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

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

Mehr

Online Newsletter III

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

Mehr

Die Sandy-Bridge Architektur

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.

Mehr

SolarWinds Engineer s Toolset

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

Mehr

Psyprax GmbH. Netzwerk Installation unter XP. Wichtig für alle Netzwerkinstallationen: Psyprax GmbH

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

Mehr

Einfügen von Bildern innerhalb eines Beitrages

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

Mehr

Einrichtung des WS_FTP95 LE

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

Mehr

Remote Control - LeCroy Oszilloskop WaveSurfer 3000 mit LabVIEW via VICP LAN-Schnittstelle

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

Mehr

Monitore. Klicken bearbeiten

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

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

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,

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

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 =

Mehr

Programmieren in Java

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

Mehr

4D Server v12 64-bit Version BETA VERSION

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

Mehr

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

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

Mehr

Innere Klassen in Java

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

Mehr

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) 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

Mehr

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

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.

Mehr

XING und LinkedIn-Integration in das erecruiter-bewerberportal

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

Mehr