Angebotene Lehrveranstaltungen

Aktuelles Semester (2022WS)

Hochperformantes Rechnen (High Performance Computing)

Überblick HPC-Architekturen und Kommunikationsnetzwerken, Probleme, Algorithmen u. Lösungen (mit Projekt/Übung); Fortgeschrittene MPI Programmierung (mit Projekt/Übung), Werkzeuge, Leistungsmodelle, Bibliotheken (mit Projekt/Übung).

 Parallele Algorithmen

Die Lehrveranstaltung vermittelt die Grundlagen der Scheduling-Theorie und es werden einzelne praktische Aspekte beim Lösen von Scheduling-Problemen betrachtet. Es werden zuerst Konzepte und Notationen eingeführt, welche in der Scheduling-Forschung Anwendung finden. Danach werden einzelne Themen detailliert beleuchtet:

Shop-Scheduling, Scheduling mit parallelen Tasks, Online-Scheduling, Approximationsalgorithmen für Scheduling-Probleme, Divisible-Load-Scheduling, Simulationen und Scheduling.

Wissenschaftliches Programmieren mit Python

  • Einführung in die Python Programmiersprache
  •  Die SciPy and NumPy Umgebung
  •  Daten verarbeitung und darstellung (Matplotlib)
  •  Code Testen
  •  Reproduzierbare und interaktive Datenverarbeitung mit IPython/Jupyter
  •  Einführung zur Lösung von Optimierungsproblemen mit Python (e.g., SciPy, PuLP)
  •  Paralleles Arbeiten mit Python
  • Schnittstellen zu anderen Programmiersprachen (e.g., Julia)

Informationen zu Wissenschaftliches-Programmieren-mit-Python in TISS, öffnet eine externe URL in einem neuen Fenster

Wissenschaftliches Arbeiten

Einführung in den Wissenschaftsbegriff, in die Grundlagen wissenschaftlichen Arbeitens sowie den Wissenschaftsbetrieb; an Hand eines selbst gewählten oder vorgegebenen Themas  üben die Studierenden die Entwicklung einer wissenschaftlichen Fragestellung, Recherche, Grundfertigkeiten wissenschaftlichen Schreibens und mündliche Präsentation.

Andere Lehrveranstaltungen

Grundlagen des Parallelen Rechnens

Motivation and goals of parallel computing, parallel computer architectures, programming models, performance measurement and analysis, introduction to programming paradigms such as MPI (Message Passing Interface), Pthreads, and OpenMP. Other aspects and languages for programming multi-core processors.

Weiterführende Multiprocessor Programmierung

Speichermodelle, Synchronisationsprobleme, -operationen, und -primitive, atomare Operationen, Konsensus, Universalität und Unmöglichkeit, "Locks", "Lock- and Wait-free" Datenstrukturen und Algorithmen (Warteschlangen, Listen, Hash-Tabellen, Suchstrukturen, ua.), "Work-stealing". Programmierprojekt (C/C++ mit Pthreads, oder Java, oder...)

Competitive Programming for Programming Contests

  • analyze programming problems efficiently and in depth,
  • find and extract the required algorithmic patterns in the problems, and
  • apply efficient programming techniques to create correct and well performing solutions.

Paralleles Rechnen

Motivation, Hintergründe, (Geschichte) des parallelen Rechnens. Parallele Algorithmen, Rechnerarchitekturen, Programmiermodelle, Leistungsanalyse und Beurteilung, parallele Algorithmen (Fragestellungen), Einführung in MPI (Message-Passing Interface), Einführung in pthreads und OpenMP, task-basierte Ansätze wie Cilk. Sprachen und Schnittstellen für Mehrkernrechner.