teaching:sommersemester_2019:python_im_hochleistungsrechnen

Proseminar „Python im Hochleistungsrechnen“

Beschreibung

Python als einfach zu lernende objekt-orientierte Programmiersprache ist seit jeher beliebt für die Automatisierung kleinerer Aufgaben im Alltag oder im Kontext von Web-Anwendungen. Erst kürzlich stieg Python zu einer der beliebtesten Programmiersprachen auf. Dieser Umstand ist nicht zuletzt dem sich stetig verbessernden Ökosystem aus einer umfänglichen Standardbibliothek, der relativ großen Entwickler-Community und vielen hochwertigen Zusatzpaketen wie z. B. Numpy, Django, TensorFlow oder Pandas zu verdanken. Insbesondere die Bibliotheken aus den Bereichen Data Science und Machine Learning machen Python auch im Hochleistungsrechnen zunehmend relevant. Zusätzlich können Wissenschaftler ihre Forschungsergebnisse z. B. in Form von Jupyter-Notebooks interaktiv dokumentieren, um ihre Ergebnisse leicht reproduzierbar zu teilen. Gerüchten zufolge lassen sich sogar fundamentale Naturgesetze wie etwa die Schwerkraft mit dem Import eines einfachen Packages aushebeln.1)

Diese Veranstaltung gibt einen Überblick über die wichtigsten Funktionen und wagt einen Blick hinter die Kulissen, um Sie in die Lage zu versetzen, auch unter Python nicht auf effiziente Implementationen verzichten zu müssen.

Beachten Sie auch unsere allgemeinen organisatorischen Hinweise zu Proseminaren.

Zielgruppe

Das Proseminar eignet sich für Studierende der Informatik in den Diplom- und Bachelorstudiengängen. Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären.

Interessierte Zuhörer sind auch herzlich willkommen.

Daten der Veranstaltung

Zeit Montag 10–12 Uhr
Ort DKRZ, Raum 034
Mailingliste PIH-19

Dozenten

Zeitplan

Bei einem allgemeinen Einführungstermin werden Grundlagen vermittelt und die Themen zugewiesen. Nach der Festlegung der Themen soll der Inhalt mit dem jeweiligen Betreuer diskutiert werden.

  • 01.04. Einführung
  • 08.04.
  • 15.04. Fällt aus
  • 29.04.
    • Python Language Overview – Lukas Voß 2)
      • Datatypes and Data Structures
      • Object Model
      • Generators, List Comprehensions
      • Decorators
      • (shebang)
    • PEPs – Noah Fuhst 3) Präsentation
  • 06.05.
    • Virtual Environments – Youssef Al Shriteh 4) Folien
      • python path
      • pip / PyPi
      • Anaconda
    • Jupyter/IPython – Darwin Willers 5)
  • 13.05.
    • Python Packaging – Inga Franzen 6)
      • How to build a python package
      • Documentation with Sphinx
      • Testing in Python (pytest, nose, …)
      • pylint
    • Spack (Architecture Perspective, How-To) – Hauke Sommerfeld 7)
  • 20.05.
  • 27.05.
  • 03.06. (Raum 023)
    • Implementations (Cpython, PyPy, …) – Jurik Karimian 13)
    • C/C++ Extensions – Marcel Robohm 14) Präsentation
  • 17.06.
    • Python Performance – Nedim Seroka 15)
      • C vs. pure Python, C vs. e.g., Numpy
    • CFFI – Leon Fritz 16)
    • Standard packages 17)
      • An overview of the default packages
      • Handling unicode
      • argparse, click..
      • logging
      • itertools
  • 24.06. (Raum 023)
    • GIL, and threads, multiprocessing – Pascal Lindner 18)
    • MPI – Alexander Gerlach 19) Präsentation
  • 01.07.
  • 08.07.
    • OpenStack (Architecture Perspective) 23)
    • Web Related (Flask, Django, Rest-Frameworks) – Valerij Dobler 24)

Literaturhinweise

2) , 5) , 6) , 13) , 15)
Jakob Lüttgau
3) , 4) , 7) , 16) , 20)
Michael Kuhn
8) , 10) , 18) , 19)
Jannek Squar
9) , 12) , 21) , 23) , 24)
Christian Hovy
11) , 14) , 17) , 22)
Kira Duwe
teaching/sommersemester_2019/python_im_hochleistungsrechnen.txt · Last modified: 2019-07-19 10:58 by Michael Kuhn