Illustrationsbild für den Virtuellen Studienplatz

Lehrveranstaltung 01516 (WiSe 21/22)

 
01516 Fachpraktikum Scientific Programming in Python im Wintersemester 2021/2022
Hinweis Das Semester dieser Veranstaltung ist beendet.
grundlegende Überarbeitung: Wintersemester 2021/2022 Umfang: 10.0 ECTS
nächster geplanter Einsatz: -keine Angaben vorhanden- Versionen
Autorinnen und Autoren Teilnahmevoraussetzungen
Beschreibung
Schließen
Beschreibung
KursbeschreibungScientific Computing, oder im Deutschen auch wissenschaftliches Rechnen, begegnet uns heute in allen Bereichen. Man versteht darunter die Umsetzung numerischer Algorithmen in eine Programmiersprache, um wissenschaftliche Probleme zu lösen. Die klassischen Programmiersprachen in diesem Bereich waren lange C oder FORTRAN, oder - je nach Anwendung - Matlab oder R. In den letzten Jahren hat jedoch Python zunehmend an Bedeutung, auch in diesem Bereich, gewonnen. Reines Python - also ohne den Einsatz irgendwelcher numerischer Spezialmodule - würde sich jedoch nicht für diese Aufgaben eignen. Für viele wissenschaftliche Algorithmen sind Geschwindigkeit und auch der Speicherverbrauch sehr wichtig. Reines Python hat jedoch einen hohen Speicherverbrauch und ist - vergleichsweise - langsam. Python bietet jedoch viele nützliche Pakete an, mit deren Hilfe sich numerische Probleme effektiv lösen lassen. In dem Praktikum soll die effektive Nutzung dieser Pakete für wissenschaftliches Arbeiten mit Python erlernt werden. Dabei wird es zunächst schwerpunktmäßig um Numpy, ScipY, Matplotlib und Pandas gehen. NumPy ist ein Modul, welches die grundlegenden Datenstrukturen zur Verfügung stellt, die auch von Matplotlib, SciPy und Pandas benutzt werden. NumPy implementiert mehrdimensionale Arrays und Matrizen. Außerdem gibt es den Nutzerinnen und Nutzern auch die wesentlichen Funktionalitäten an die Hand, mit denen sich diese Datenstrukturen erzeugen und manipulieren lassen. SciPy baut auf NumPy auf, d.h. es benutzt die Datenstrukturen, die NumPy bereitstellt. Es erweitert die Leistungsfähigkeit von NumPy mit weiteren nützlichen Funktionalitäten, wie beispielsweise Minimierung, Regression, Fourier-Transformation und vieles andere. Die von Pythonprogrammen, - mit oder ohne Verwendung von NumPy und SciPy, - erzeugten Daten möchte man häufig gerne grafisch darstellen. Für diesen Zweck wurde das Modul Matplotlib geschaffen. Das jüngste Kind in dieser Modulfamilie ist Pandas. Pandas benutzt alle bisher genannten Module und ist auf diesen aufgebaut. Der Fokus von Pandas besteht darin, Datenstrukturen und Operationen zur Manipulation von Tabellen und Zeitreihen bereitzustellen. Im zweiten Teil des Seminars geht es dann um Numba und mpi4py, welche eine effiziente Parallelisierung der Algorithmen ermöglichen. MPI4Py bietet die Python-Bindungen für MPI, den de facto Standard für paralleles Programmieren. Mit MPI werden die Programme geschrieben, die auf den schnellsten Computern der Welt laufen - aber auch die Datenverarbeitung zuhause lässt sich damit beschleunigen. Numba ist ein Just-in-time-Compiler für Python-Arrays und numerische Funktionen, der einem die Möglichkeit gibt, Anwendungen mit leistungsstarken Funktionen zu beschleunigen, welche in Python geschrieben wurden. Numba generiert dabei optimierten Maschinencode aus reinem Python-Code unter Verwendung der LLVM-Compiler-Infrastruktur. Mit wenigen einfachen Anmerkungen kann mathematisch schwerer Python-Code just-in-time auf eine ähnliche Leistung wie C, C++ und Fortran optimiert werden, ohne dass Sprachen oder Python-Interpreter gewechselt werden müssen.
Termine
Veranstaltungsbeginn: 04.10.2021
Betreuung
Betreuende Liste der Campus Standorte bzw. Studienzentren

Irrtümer und nachträgliche Datenänderungen vorbehalten.


Seite erstellt in 0,1s  |  26.4.24,00:13 im Sommersemester 2024  |  realisiert durch das LVU-System
FernUni-Logo FernUniversität in Hagen, 58084 Hagen, Telefon: +49 2331 987-01, E-Mail: fernuni@fernuni-hagen.de