| |
Veranstalter |
Dr. Andreas F. Borchert
|
| |
Typ | Vorlesung mit Übungen |
| |
Umfang |
2 V + 2 Ü (6 LP)
|
| |
Termin |
Mo 10-12 Uhr in der Helmholtzstraße 18, E20 (Vorlesung)
Di 16-18 Uhr in der Helmholtzstraße 18, E60 (Übungen)
Wegen einer terminlichen Kollision wird
die Vorlesung vom Montag, den 11. Juli, auf den
Übungstermin am Dienstag, den 12. Juli, verschoben.
|
| |
Beginn |
Montag, 11. April 2011
|
| |
Prüfungen |
Die Vorlesung ist für die Master-Studiengänge
Mathematik, Wirtschaftsmathematik, Informatik und
Medieninformatik vorgesehen. (Bei anderen Studiengängen
müsste das ggf. noch geklärt werden.) Die Prüfungsmodalitäten
hängen von der Zahl der Teilnehmer ab.
|
| |
Inhalte |
- Einführung in die Prozessalgebra CSP
- Architekturen paralleler Systeme
- Parallelisierungstechniken:
- Threads
- OpenMP
- MPI einschließlich dem Studium einer
einfachen Implementierung auf Basis von TCP/IP
- GPUs mit CUDA, ggf. auch OpenCL
- Design-Patterns paralleler Systeme
|
| |
Skript |
Die in der Vorlesung verwendeten Folien und Beispiele
werden hier begleitend veröffentlicht:
- 11. April (Syllabus, Einführung in CSP,
csp-simple.tar.gz)
- 18. April (Parallelität,
Synchronisierung, Nichtdeterminismus, Kommunikation und
Divergenz in CSP,
csp-simple-2.tar.gz)
korrigiert und erweitert am 18. April,
15:00 Uhr
- 26. April (Parallele
Architekturen, Einführung in Threads)
- 3. Mai (Parallelisiertes
Backtracking, gegenseitiger Ausschluss, Monitore,
Bedingungsvariablen,
queens.cpp,
queens2.cpp,
ringbuffer.tar.gz)
- 9. Mai (Rendezvous),
rendezvous.tar.gz
- 16. Mai (Gemeinsamer
Speicher, Cache-Strukturen, Cache-Kohärenz, Speichermodelle)
- 24. Mai (OpenMP, Teile- und
Herrsche-Prinzip, Auftragsschlangen)
- 6. Juni (Multicomputer
ohne gemeinsamen Speicher, Einführung in MPI)
- 14. Juni (Einführung
in BSD-Sockets)
timeserver.c,
timeclient.c
- 20. Juni (boost::asio-Bibliothek
und das Proactor-Pattern)
timeserver.cpp,
timeclient.cpp,
async-timeserver.cpp
- 27. Juni (Parallelisierung
mit Hilfe grafischer Prozessoren)
- 5. Juli (Matrix-Matrix-Multiplikation
mit CUDA)
- CSP-Beispiele zu MPI aus der Vorlesung am 11. Juli:
- Alle bisher veröffentlichten Folien
(Stand: 5. Juli)
|
| |
Voraussetzungen |
Es werden einführende Vorlesungen in die praktische Informatik
vorausgesetzt. Denkbar sind entweder Allgemeine Informatik I und II
oder Praktische Informatik I und II. Insbesondere hilfreich wären
- Grundlegende Kenntnisse in Unix/Linux
- Grundlegende Kenntnisse in einer Programmiersprache
- Grundlegende Kenntnisse von Netzwerken,
insbesondere TCP/IP und BSD-Sockets wie
sie beispielsweise in Systemnahe Software II vermittelt
werden
Eine Einführung in C++ findet zu Beginn in den Übungen statt.
|
| |
Übungen |
Bitte melden Sie sich zu den Übungen im
SLC
an.
In den Übungen verwendete Folien:
Die Abgabetermine sind jeweils um 16:00 Uhr, wenn nichts
anderes auf dem Übungsblatt angegeben ist.
Blatt |
Abgabetermin |
Angabe |
Sonstiges |
Lösung |
1 |
19.04.2011 |
[PDF]
|
Vorgegebene Schnittstelle:
Nim.hpp;
eine Vorlage für Nim.cpp;
zum Testen fertige Objekte für Debian-Linux, 64 Bit:
Nim.o
TestNim.o
|
Nim.cpp,
TestNim.cpp
|
2 |
03.05.2011 |
[PDF]
|
|
Computer.cpp,
Computer.hpp,
Game.cpp,
Game.hpp,
Human.cpp,
Human.hpp,
Nim.cpp,
Nim.hpp,
Player.hpp,
PlayerVsComputer.cpp
|
3 |
10.05.2011 |
[PDF]
|
|
pipeline.hpp,
pipeline.tpp,
testit.cpp
|
4 |
17.05.2011 |
[PDF]
|
condition.hpp
|
condition.cpp,
testit.cpp
|
5 |
31.05.2011 |
[PDF]
|
|
|
6 |
21.06.2011 |
[PDF]
|
mpi-gemv.cpp
|
primes.hpp,
primes.cpp
integer.hpp,
mpi-primes.cpp
|
7 |
12.07.2011 |
[PDF]
|
|
Makefile,
bigint.hpp,
primes-client.cpp,
primes-msg.hpp,
primes-server.cpp,
primes.cpp,
primes.hpp
|
|
| |
Weitere Materialien |
|
| |
|