Parallele Programmierung mit OpenMP

Größe: px
Ab Seite anzeigen:

Download "Parallele Programmierung mit OpenMP"

Transkript

1 Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2009

2 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung Lastverteilung auf mehrere Threads Gültigkeitsbereiche von Daten Gemeinsam an einem Gesamtergebnis arbeiten Synchronisation 5 OpenMP Funktionen 6 Umgebungsvariablen 7 Compiler, die OpenMP unterstützen 8 Praktische Vorführung

3 Parallelisieren wozu? Eine CPU immer schneller machen, gelingt heute nicht mehr, stattdessen werden Dual- und Quadcore CPUs in die Rechner (inzwischen auch in handelsübliche PCs/Laptops) eingebaut. Normalerweise nutzt Software aber nur eine CPU - v.a. bei rechenintensiven Aufgaben eine Verschwendung. Software wird standardmässig Step-by-Step abgearbeitet muss daher parallelisiert werden.

4 Parallelisierungsmethoden Distributed Memory mehrere einzelne Rechner in einem Cluster. (Message Passing Interface (MPI)) Shared Memory mehrere CPUs in einem Rechner, die auf einen gemeinsamen Speicher zugreifen können (OpenMP, POSIX Threads) Implizit automatisch durch den Compiler, keine speziellen Anweisungen, Funktionen, etc. notwendig. Explizit macht der Programmierer durch spezielle Anweisungen, Funktionen, etc.

5 OpenMP - Übersicht Explizite shared Memory Parallelisierung Erweiterung für existierende Programmiersprachen (C/C++/Fortran) Hauptsächlich über Compiler Direktiven Einige wenige Library-Funktionen Inkrementelle Parallelisierung (Parallelisierung eines existierenden seriellen Programms). Schwerpunkt: Parallelisierung von Loops.

6 OpenMP Fork-Join Ausführungsmodell Abbildung: Fork-join Modell von OpenMP 1 1 Grafik von Wikipedia

7 OpenMP Architecture Review Board (... von der OpenMP Homepage) The OpenMP Architecture Review Board or the OpenMP ARB or just the ARB, is the non-profit corporation that owns the OpenMP brand, oversees the OpenMP specification and produces and approves new versions of the specification. Etliche Firmen sind darin vertreten herstellerunabhängiger Standard zur Parallelprogrammierung Permanent Members of the ARB: AMD, Cray, Fujitsu, HP, IBM, Intel,Microsoft, NEC, The Portland Group, SGI, Sun Auxiliary Members of the ARB: ASC/LLNL, compunity, EPCC, NASA, RWTH Aachen

8 Ein Hello World Programm mit OpenMP (C) # ifdef _OPENMP # include <omp.h> # endif # include <stdio.h> int main ( void ) { int i; # pragma omp parallel for for ( i = 0; i < 4; ++ i) { int id = omp_ get_ thread_ num (); printf (" Hello World von thread %d\n", id ); if (id ==0) printf ("Es gibt %d threads \n", omp_get_num_threads ()); } return 0; }

9 Ein Hello World Programm mit OpenMP (Fortran) PROGRAM HELLO USE omp_ lib INTEGER ID, NTHRDS, I C $OMP PARALLEL DO PRIVATE (ID,I, NTHRDS ) DO I=1,4 ID = OMP_ GET_ THREAD_ NUM () PRINT *, HELLO WORLD VON THREAD, ID IF ( ID. EQ. 0 ) THEN NTHRDS = OMP_ GET_ NUM_ THREADS () PRINT *, Es GIBT, NTHRDS, THREADS END IF END DO C $OMP END PARALLEL DO END

10 Compilerdirektiven OpenMP wird hauptsächlich über Compilerdirektiven definiert. Direktivenformat in C/C++ # pragma omp direktivenname [ klauseln...] Direktivenformat in Fortran C234567! $OMP direktivenname [ klauseln...] [! Kommentar ] (in Fortran sind auch andere Sentinels erlaubt 2 (C$OMP, *$OMP). 2 nur in fixed source form

11 Compilerdirektiven II für nicht OpenMP-fähige Fortran Compiler erscheinen diese Direktiven als Kommentar. nicht OpenMP-fähige C-Compiler ignorieren unbekannte Direktiven: $ gcc - Wall test. c # ( alte gcc Version ( < 4. 2)) test.c: In function main : test. c : 12: warning : ignoring # pragma omp parallel $ Werden OpenMP Compilerdirektiven in ein Programm eingefügt werden, kann das Programm weiterhin von jedem (auch nicht OpenMP-fähigen) Compiler compiliert werden.

12 Bedingte Compilierung C/C++: Das Makro _OPENMP wird definiert. # ifdef _ OPENMP /* Openmp spezifischer Code, z.b. */ nummer = omp_ get_ thread_ num () ; # endif Fortran: OpenMP erlaubt die bedingte Compilierung in Fortran. C234567! $ NUMMER = OMP_ GET_ THREAD_ NUM () Erscheint als Kommentar, wenn OpenMP nicht aktiviert ist (bzw. bei einem nicht OpenMP-fähigen Compiler), wird normal compiliert, wenn OpenMP aktiviert ist.

13 omp parallel Erzeugen zusätzlicher Threads, die Arbeit wird von allen Threads ausgeführt. Der originale Thread (master thread) bekommt die Thread ID 0. C/C++: # pragma omp parallel [ klauseln ] /* strukturierter Block ( keine gotos...) */ Fortran:! $OMP PARALLEL [ klauseln ] block! $OMP END PARALLEL

14 Arbeitsaufteilung zwischen den Threads I Loops: omp for (C/C++) Die Arbeit wird unter den Threads aufgeteilt (Beispiel: bei zwei Threads bearbeitet einer die Schleife 3 von 1 ( N 2 1), der zweite von N 2 N)4 # pragma omp parallel [ klauseln...] # pragma omp for [ klauseln...] for (i =0;i<N;i ++) a[i]= i*i; Dies kann auch zusammengefasst werden (omp parallel for): # pragma omp parallel for [ klauseln...] for (i =0;i<N;i ++) a[i]= i*i; 3 Bei OpenMP 2.5 muß die Schleifenvariable vom Typ int sein. 4 Das Verhalten kann durch Verwendung der schedule()-klausel (static, dynamic, guided, runtime) beeinflusst werden...

15 Arbeitsaufteilung zwischen den Threads I Loops: omp do (Fortran) Die Arbeit von DO-Loops wird von allen Threads gemeinsam bearbeitet.! $OMP PARALLEL [ klauseln...]! $OMP DO [ klauseln...] DO I=1,N A(I) = I*I END DO! $OMP END DO! $OMP END PARALLEL Auch hier wieder möglich:! $OMP PARALLEL DO [ klauseln...] [...]! $OMP END PARALLEL DO!$OMP PARALLEL i=1 i=2 i=3 i=4!$omp DO i=5 i=6 i=7 i=8!$omp END DO i=9 i=10 i=11 i=12!$omp END PARALLEL (implizite) Barrier Abbildung: (par.) DO Schleife

16 Arbeitsaufteilung zwischen den Threads II Parallele Sections (C/C++) Die Arbeit wird unter den Threads aufgeteilt. Jeder bearbeitet eine Section. # pragma omp parallel [ klauseln...] # pragma omp sections [ klauseln...] { # pragma omp section [... Programmteil A läuft parallel zu B...] # pragma omp section [... Programmteil B läuft parallel zu A...] } Auch hier kann man das kombinieren: # pragma omp parallel sections [ klauseln...]

17 Arbeitsaufteilung zwischen den Threads II Parallele Sections (Fortran) Die Arbeit wird unter den Threads aufgeteilt. Jeder bearbeitet eine Section.! $OMP PARALLEL [ klauseln...]! $OMP SECTIONS [ klauseln...]! $OMP SECTION [... Programmteil A läuft parallel zu B...]! $OMP SECTION [... Programmteil B läuft parallel zu A...]! $OMP END SECTIONS! $OMP END PARALLEL Auch hier kann man das kombinieren:! $OMP PARALLEL SECTIONS [ klauseln...]

18 Arbeitsaufteilung zwischen den Threads III Parallel Workshare (nur Fortran) Für Operationen mit Arrays, z.b. REAL, DIMENSION (100,100) :: A, B, C [...]! $OMP PARALLEL WORKSHARE A = B + C! $OMP END PARALLEL WORKSHARE

19 Gültigkeitsbereiche von Daten - shared(), private(),... Achtung: Häufige Fehlerquelle! Klauseln, die bei OpenMP-Direktiven angegeben werden, regeln wie Variablen zwischen den Threads ausgetauscht werden... shared(): Die Daten werden unter allen parallelen Regionen geshared, d.h. sie sind in allen Threads les- und schreibbar. Wenn ein Thread eine Variable ändert, ist sie auch in allen anderen Threads modifiziert. Default: Alle Variablen sind shared() ausser Schleifenvariablen bei OMP DO/omp for. private(): Jeder Thread bekommt eine private Kopie der Variablen, diese wird nicht initialisiert. Default: Nur Schleifenvariablen sind privat. default(shared private none): legt den Defaultwert fest. none: Jede Variable muss shared() oder private() deklariert werden.

20 Gültigkeitsbereiche von Daten II firstprivate(): wie private(), aber alle Kopien werden mit dem Wert der Variablen vor der parallelen Schleife/Region initialisiert. lastprivate(): Die Variable wird nach der parallelen Schleife/Region mit dem Wert aus dem Thread initialisiert, der (sequentiell) am spätesten drangekommen wäre.

21 Gemeinsam an einem Gesamtergebnis arbeiten reduction() Aufsummieren eines Arrays, etc. a = 0 ; b = 0 ; # pragma omp parallel for private (i) shared (x, y, n) \ reduction (+: a, b) for (i =0; i<n; i ++) { a = a + x[i] ; b = b + y[i] ; } Eine lokale Kopie jeder Variable in reduction() wird erzeugt und abhängig vom Operator initialisiert (z.b. 0 für + ). Wenn dann (z.b.) 3 Threads je ein Drittel der Schleife bearbeiten, werden am Ende die Teilsummen aller Threads vom Master-Thread aufsummiert.

22 Synchronisation Barrier Alle Threads warten, bis alle diesen Punkt erreicht haben # pragma omp barrier (C/C ++)!$OMP BARRIER ( Fortran ) z.b. bei zwei parallelisierten for-schleifen # pragma omp parallel { # pragma omp for nowait for (i =0; i < N; i ++) a[i] = b[i] + c[i]; # pragma omp barrier # pragma omp for for (i =0; i < N; i ++) d[i] = a[i] + b[i]; } Pause Pause

23 Synchronisation II Critical/Atomic alle Threads führen den Code aus, aber nur einer zu einem Zeitpunkt. # pragma omp critical [ name ] { code - block } # pragma omp atomic [ name ] statement! $OMP CRITICAL [ name ] code - block! $OMP END CRITICAL! $OMP ATOMIC [ name ] statement Abbildung: CRITICAL Region Alle Threads warten am Beginn der critical Region, bis kein anderer Thread eine critical Region mit demselben Namen ausführt. critical Regionen ohne Namen werden alle demselben (nicht spezifizierten) Namen zugeordnet.

24 Synchronisation III Critical Codebeispiel # ifdef _OPENMP # include <omp.h> # endif # include <stdio.h> int main () { double a [ ]; int i; # pragma omp parallel for for (i=0; i < ; i++) a[i]=i; double summe = 0; # pragma omp parallel for shared ( summe ) private (i) for ( i =0; i < ; i ++) { GrosseBerechnung (i); } summe = summe + a[i]; } printf (" summe =% lf\n",summe ); Summiert (ähnlich wie reduction()) die Elemente des Arrays auf. Was ist das Problem?

25 Synchronisation III Critical Codebeispiel (korrekt) # ifdef _OPENMP # include <omp.h> # endif # include <stdio.h> int main () { double a [ ]; int i; # pragma omp parallel for for (i=0; i < ; i++) a[i]=i; double summe = 0; # pragma omp parallel for shared ( summe ) private (i) for ( i =0; i < ; i ++) { GrosseBerechnung (i); /* sonst würde nichts parallelisiert */ # pragma omp critical ( summierung ) summe = summe + a[i]; } printf (" summe =% lf\n",summe ); } Bei der Summierung kann eine Race-Condition auftreten. Diese muss mit #pragma omp critical vermieden werden.

26 Synchronisation IV Nur ein Thread soll eine Region ausführen z.b. für I/O # pragma omp master { [ Code der nur einmal ( nur vom Master Thread ) ausgeführt wird ] } # pragma omp single { [ Code der nur einmal ( nicht unbedingt vom Master Thread ) ausgeführt wird ] } Im OpenMP-Hello-World-Programm am Beginn hätte man statt der if-abfrage auch #pragma omp master verwenden können.

27 Synchronisation V Flush, Ordered FLUSH: sorgt für eine konsistente Sicht auf den Speicher. # pragma omp flush ( variablen )! $OMP FLUSH ( variablen ) ORDERED: Legt fest, dass die Reihenfolge der Ausführung der Iterationen des betreffenden Blocks die gleiche wie bei serieller Programmausführung sein muss zulässig nur innerhalb einer for-schleife # pragma omp for ordered {... } ;

28 OpenMP-Funktionen OpenMP stellt div. Library Funktionen zur Verfügung. Settings mit diesen Funktionen haben Vorrang vor den entsprechenden Umgebungsvariablen. Empfehlung: Verwendung nur mit #ifdef _OPENMP bzw. bedingter Compilierung (Fortran), damit der Code auch ohne OpenMP lauffähig bleibt. C/C++: #include <omp.h> Fortran: USE omp_lib

29 OpenMP-Funktionen II Threading int omp_get_num_threads() int omp_get_thread_num() int omp_in_parallel() void omp_set_num_threads(int)... Locking (Achtung bei Locking-Funktionen: Deadlock-Gefahr) void omp_init_lock(omp_lock_t*): Lock initialisieren void omp_set_lock(omp_lock_t*): Lock setzen (blockierend) int omp_test_lock(omp_lock_t*): Lock setzen (nicht blockierend) void omp_unset_lock(omp_lock_t*): Lock löschen void omp_destroy_lock(omp_lock_t*): Lock deinitialisieren......

30 Umgebungsvariablen OMP_NUM_THREADS=integer Maximale Anzahl der OpenMP-Threads OMP_SCHEDULE= kind[,chunk_size] (static, dynamic, guided) betrifft das Aufteilen der Arbeit in Loops: static: jeder Thread bekommt statisch gleich viele Iterationen zugeteilt dynamic: jeder Thread holt sich neue Arbeit ab, sobald er arbeitslos ist guided: wie dynamic, nur werden die zugewiesenen Pakete laufend kleiner OMP_DYNAMIC= true false (kann die Anzahl der Threads dynamisch modifiziert werden?) OMP_NESTED= true false

31 Compiler - gcc ab Version ist möglicherweise (noch) nicht bei der eigenen Distribution dabei, aber selbstcompilieren ist kein grosses Kunststück: Download der aktuellen Release von ftp://ftp.gnu.org/gnu/gcc/. Selbstcompilieren von gcc a a Vorraussetzungen (benötigte Tools und Libraries, etc.) auf $ tar xvjf gcc tar. bz2 $ mkdir gcc - build ; cd gcc - build $../ gcc / configure -- prefix =/ opt /gcc \ --enable - languages = fortran,c,c++ $ make # das dauert, Zeit für eine Tasse Kaffee... $ make install # als root

32 gcc - Verwenden des selbstcompilierten GCC Verwendung des selbstcompilierten GCC $ / opt /gcc / bin / gcc -Wall - fopenmp helloworld.c $ export LD_LIBRARY_PATH =/ opt /gcc / lib64 $ export OMP_ NUM_ THREADS =4 $./a. out Hello World from thread 3 Hello World from thread 0 Hello World from thread 1 Hello World from thread 2 There are 4 threads

33 gcc - Verwenden des selbstcompilierten GCC (mit -rpath) Die Linker-option -rpath codiert den Suchpfad für Libraries in das Binary. Vorteil: läuft (am eigenen System) ohne $LD_LIBRARY_PATH Hacks... Nachteil: läuft (möglicherweise) nur am eigenen System (Auf einigen Unixen (z.b. IRIX) wird rpath vor $LD_LIBRARY_PATH durchsucht) Verwendung des selbstcompilierten GCC $ / opt /gcc / bin / gcc -Wall - fopenmp \ -Wl,- rpath =/ opt /gcc / lib64 helloworld.c $ export OMP_ NUM_ THREADS =4 $./a. out Hello World from thread 3 Hello World from thread 0 There are 4 threads Hello World from thread 1 Hello World from thread 2

34 Compiler - Sun Studio 12 Download von (Registrierung nötig) Verwendung des Sun CC $ cd / opt $ tar xvjf SunStudio12ml - linux -x ii.tar. bz2 $ cd $HOME $ / opt / sunstudio12 / bin /cc - xopenmp helloworld.c $ export OMP_ NUM_ THREADS =4 $./a. out Hello World from thread 0 There are 4 threads Hello World from thread 2 Hello World from thread 3 Hello World from thread 1

35 Compiler Intel Compiler Linux-Version für nichtkommerziellen Gebrauch ist gratis. Download von download/download/ (Registrierung nötig) Verwendung des Intel CC $ icc - openmp helloworld. c helloworld.c (8): ( col. 1) remark : OpenMP DEFINED LOOP WAS PARALLELIZED. $ export OMP_ NUM_ THREADS =4 $./a. out Hello World from thread 0 There are 4 threads Hello World from thread 1 Hello World from thread 3 Hello World from thread 2

36 Links OpenMP Homepage: OpenMP auf Wikipedia: OpenMP Spezifikationen:

37 Fragen? Ausblicke - was ich nicht behandelt habe... weitere OpenMP Direktiven und Funktionen (es gibt noch mehr,... ) 5 Vergleich mit anderen Modellen zur Parallelprogrammierung, z.b. MPI Vielen Dank für Ihre Aufmerksamkeit Wolfgang Dautermann wolfgang.dautermann[at]fh-joanneum.at 5 das war auch eine OpenMP-Einführung, kein Expertenvortrag

38 Praktische Vorführung Das Beispiel wurde im Hörsaal live vorgeführt, die dazugehörigen Folien entstanden später für die Webseiten der Chemnitzer Linuxtage Ein einfaches Programm um π mit der Formel vom Leibnitz zu berechnen (Dies ist nicht die schnellste Methode um π zu berechnen, aber als einfache Demonstration der Möglichkeiten, die OpenMP bietet gut geeignet): ( 1) k k=0 2k + 1 = = π 4 Das folgende Programm 6 wurde sowohl mit als auch ohne OpenMP-Unterstützung compiliert und dann mit einer oder zwei CPUs (= verschiedenen Werten von OMP_NUM_THREADS ausgeführt. 6 Programm & Hardware sind bei diesen Folien etwas anders als live bei den CLT2009, aber der Effekt ist trotzdem gut zu sehen.

39 Praktische Vorführung II # include <stdio.h> # include <math.h> # define SCHRITTZAHL int main ( int argc, char * argv []) { long i; double pi = 0; # pragma omp parallel for reduction (+: pi) for ( i = 0; i < SCHRITTZAHL ; i ++) { /* pi /4 = 1/1-1/3 + 1/5-1/ */ pi -= pow (-1,i) / (i * ); } pi = pi * 4.0; printf ("Pi = %lf\n",pi ); return 0; }

40 Praktische Vorführung III Compilierung und Ausführung ohne OpenMP Hier hätte man die Zeile 8 des Programms auch weglassen können, die wird ignoriert. $ gcc -lm -Wall pi - openmp.c pi - openmp.c: In function main : pi - openmp. c :8: warning : ignoring # pragma omp parallel $ time./a. out Pi = real user sys 0 m s 0 m s 0m0.136 s Das Programm benötigt ca. 25 Sekunden ohne OpenMP.

41 Praktische Vorführung IV Compilierung und Ausführung mit OpenMP OpenMP wird aktiviert: $ gcc -lm - fopenmp -Wall pi - openmp.c $ export OMP_NUM_THREADS =1 $ time a. out Pi = real 0 m s user 0 m s sys 0m0.008 s $ export OMP_NUM_THREADS =2 $ time a. out Pi = real user sys 0 m s 0 m s 0m0.068 s

42 Praktische Vorführung V Der Speedup ist bei diesem rechenintensiven Beispielprogramm linear 7. Nicht schlecht für eine zusätzliche Zeile Code und eine zusätzliche Compileroption... (Dieses Beispiel ist sehr gut parallelisierbar, bei anderen Programmen wird der Speedup in der Regel nicht so gut ausfallen - das Amdahlsches Gesetz wird sich bemerkbar machen)... Zusätzlich wurde die CPU-Auslastung mit dem Programm top beobachtet. 7 doppelt soviele CPUs benötigen die halbe Ausführungszeit

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

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

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

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

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

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

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

OpenMP. Viktor Styrbul OpenMP Viktor Styrbul Inhaltsverzeichnis Was ist OpenMP Warum Parallelisierung Geschichte Merkmale von OpenMP OpenMP-fähige Compiler OpenMP Ausführungsmodell Kernelemente von OpenMP Zusammenfassung Was

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

C++ mit Eclipse & GCC unter Windows

C++ mit Eclipse & GCC unter Windows C++ mit Eclipse & GCC Seite 1 / 14 C++ mit Eclipse & GCC unter Windows Hinweise Stand 18. Okt. 2014 => GCC 4.9.1 Boost 1.56.0 Eclipse Luna V. 4.4.1 Java Version 8, Update 25 (entspricht 1.8.0_25) Achtung

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation 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

Mehr

Programmierkurs Java

Programmierkurs 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

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

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

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

Objektorientierte Programmierung

Objektorientierte 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

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

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

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Native Zeichenketten (C-Strings)

Native Zeichenketten (C-Strings) Native Zeichenketten (C-Strings)... sind in C/C++ char-arrays. D.h. die Deklaration char msg[80]; kann Zeichenketten bis zur Länge 79 enthalten. (Direkte Zuweisungen wie msg="hallo!" sind jedoch nicht

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

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

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

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de OpenMP Einführung I: Allgemeine Einführung Prozesse

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil III Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung

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

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen

Mehr

Algorithmen mit Python

Algorithmen mit Python Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

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

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

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

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

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

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

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 hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Second Steps in eport 2.0 So ordern Sie Credits und Berichte Second Steps in eport 2.0 So ordern Sie Credits und Berichte Schritt 1: Credits kaufen, um Zugangscodes generieren zu können Wählen Sie Credits verwalten und klicken Sie auf Credits kaufen. Geben Sie nun

Mehr

Erfahrungen mit Hartz IV- Empfängern

Erfahrungen mit Hartz IV- Empfängern Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November

Mehr

Eigenen Farbverlauf erstellen

Eigenen Farbverlauf erstellen Diese Serie ist an totale Neulinge gerichtet. Neu bei PhotoLine, evtl. sogar komplett neu, was Bildbearbeitung betrifft. So versuche ich, hier alles einfach zu halten. Ich habe sogar PhotoLine ein zweites

Mehr

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

Mehr

Wie erreiche ich was?

Wie erreiche ich was? Wie erreiche ich was? Projekt: Bezeichnung: Präsentationen Webinare Version: 2.0 Datum: 20. Februar 2014 Kurzbeschreibung: In der vorliegenden Kurzbeschreibung finden Sie die genaue Anleitung für die Teilnahme

Mehr

Printserver und die Einrichtung von TCP/IP oder LPR Ports

Printserver und die Einrichtung von TCP/IP oder LPR Ports Printserver und die Einrichtung von TCP/IP oder LPR Ports In der Windowswelt werden Drucker auf Printservern mit 2 Arten von Ports eingerichtet. LPR-Ports (Port 515) oder Standard TCP/IP (Port 9100, 9101,9102)

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

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

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

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, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

PowerPoint vertonen. by H.Schönbauer 1

PowerPoint vertonen. by H.Schönbauer 1 PowerPoint vertonen by H.Schönbauer 1 Das brauchen wir dazu: PowerPoint Ein Konzept, eine Idee Ein oder mehrere Musikstücke Konvertierungssoftware Grafische Elemente wie Fotos, Cliparts Wenn wir das alles

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

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

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren 1 32- oder 64-bit Windows feststellen In den nachfolgenden Schritten ist es nötig, dass Sie wissen, ob Sie

Mehr

Mein eigener Homeserver mit Ubuntu 10.04 LTS

Mein eigener Homeserver mit Ubuntu 10.04 LTS In diesem Tutorial zeige ich ihnen wie sie mittels einer Ubuntu Linux Installation einen eigenen Homeserver für Windows Freigaben aufsetzen (SMB/CIFS). Zunächst zur der von mir verwendeten Software- /Hardwarekombination:

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart & Enno Zickler hermann.lenhart@zmaw.de OpenMP Allgemeine Einführung I OpenMP Merkmale: OpenMP ist keine Programmiersprache!

Mehr

Kurzanleitung. Toolbox. T_xls_Import

Kurzanleitung. Toolbox. T_xls_Import Kurzanleitung Toolbox T_xls_Import März 2007 UP GmbH Anleitung_T_xls_Import_1-0-5.doc Seite 1 Toolbox T_xls_Import Inhaltsverzeichnis Einleitung...2 Software Installation...2 Software Starten...3 Das Excel-Format...4

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

TYPO3 Super Admin Handbuch

TYPO3 Super Admin Handbuch TYPO3 Super Admin Handbuch Erweiterung News Für das System der Maria Hilf Gruppe Version 02 09.03.10 Erstellt durch: NCC Design Florian Kesselring Zeltnerstraße 9 90443 Nürnberg 1 Inhaltsverzeichnis Inhalt

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Einführung in PHP. (mit Aufgaben)

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

Mehr

Die Invaliden-Versicherung ändert sich

Die Invaliden-Versicherung ändert sich Die Invaliden-Versicherung ändert sich 1 Erklärung Die Invaliden-Versicherung ist für invalide Personen. Invalid bedeutet: Eine Person kann einige Sachen nicht machen. Wegen einer Krankheit. Wegen einem

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen Eigene Symbolleisten in Word erstellen Diese Anleitung beschreibt, wie man in Word eigene Symbolleisten erstellt und mit Schaltflächen füllt. Im zweiten Teil wird erklärt, wie man mit dem Makrorekorder

Mehr

PHPNuke Quick & Dirty

PHPNuke Quick & Dirty PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt

Mehr

Google Analytics einrichten

Google Analytics einrichten Technik Autor: Yves Lüthi 19.10.2011 Google Analytics einrichten Google bietet ein kostenloses Web-Analyse Tool an, das es erlaubt, genaue Statistiken über Ihre Webseite zu erstellen. Damit Sie diesen

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

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

Pascal-Compiler für den Attiny

Pascal-Compiler für den Attiny Das Attiny-Projekt MikroPascal 1 Pascal-Compiler für den Attiny Manch einer möchte vielleicht unsere Attiny-Platine nicht mit BASCOM programmieren. Verschiedene Alternativen bieten sich an. Ein besonders

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

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr