Kundenstimmen
Guter Kurs. Man kommt auch ohne Python-Kenntnisse sehr
schnell mit der Bedienung zurecht.
Daniel Fuchs, GIGATRONIK Ingolstadt GmbH,
über den Kurs "Python für Programmierer"
mehr dazu ...
Sehr schöne Schulung, kann viele Anregungen mitnehmen.
Dr.-Ing. Ralf Wieland, Institut für Landschaftssystemanalyse,
Leibniz-Zentrum für Agrarlandschaftsforschung e.V.
über den Kurs "Python für Wissenschaftler und Ingenieure"
mehr dazu ...
Mike is an outstanding teacher ... I will look for his classes in the future.
Jennifer Trasti, Software/Systems Engineer, Sandia National Laboratories, Albuquerque, NM, USA
mehr dazu ...
The Python Summer Course was a very good opportunity to know almost all about Python. ... Highly recommended!!
Dr. Fabio Lamanna, Complex Transportation Networks, Triest, Italien mehr dazu ...
We had a wide range of Python experience in our group and each person gained something valuable to take away....
Dr. Ryan Woodard, Chair of Entrepreneurial Risks, ETH Zürich, Schweiz mehr dazu ...
Den Kurs kann ich bedingungslos allen empfehlen, die innert kurzer Zeit
zu einer produktiven Arbeit mit Python kommen wollen.
Dr. med. Beat Meister, Bern
mehr dazu ...
The standard Python for programmers and the customized "Python for Experts"
course where a great success. ...
Bart Hillaert, Alcatel-Lucent Belgien
mehr dazu ...
[The trainer] knows well what scientists need, so his hints are very practical
and valuable. The hands-on course [..] covers a wide range of
examples and will be very helpful in my daily work. ...
Dorota Jarecka, University of Warsaw about the course
"Python for Scientists and Engineers"
mehr dazu ...
The course "Python for Scientists and Engineers" is a very useful
introduction to Python programming for scientific applications ...
Dr. Mihai Duta, Oxford Supercomputing Centre
mehr dazu ...
Sehr gute Einführung in die Programmiersprache ...
Matthias Enderle
mehr dazu ...
Die Python Academy ist Sponsor der PyCon US 2012.
Modul - Optimierung von Pythonprogrammen
Motivation
Python ist eine interpretierte Sprache; Pythonquelltexte werden zu portablem Bytecode übersetzt. Dieses Konzept ermöglicht, in Verbindung mit den anderen Gestaltungsprinzipen der Sprache, viele der Vorteile von Python gegenüber anderen Sprachen. Die Ausführungsgeschwindigkeit von Python-Programmen kann aber für bestimmte Anwendungen wesentlich geringer sein als für kompilierte Programme. Optimierung ermöglicht oft eine wesentliche Verbesserung der Performance von Python-Programmen.
Kursinhalt
Richtlinien für die Optimierung
Python-Programme sind nicht grundsätzlich langsam. Im Gegenteil: für viele Anwendungsfälle ist die Ausführungsgeschwindigkeit vollkommen ausreichend. Die grundlegende Frage ist also, ob das Programm den Anwendungszweck erfüllt. Weiterhin muss klar sein, ob nicht andere Faktoren wie z.B. Datenbankzugriffe oder Netzwerkverbindungen entscheidend für die Geschwindigkeit sind.
Der Kurs vermittelt wichtige Richtlinien für die Optimierung.
Profiling
Mit Profiling kann man die Stellen in einem Programm finden, die die meiste Zeit in Anspruch nehmen.
Im Kurs werden die builtin-Module profile und timeit vorgestellt. Mit Beispielen wird gezeigt, wie diese Module eingesetzt werden können. Wir messen die CPU-Zeit und den Arbeitsspeicherverbrauch. Teilnehmer können gern ihre eigenen Programme im Kurs "profilen".
Algorithmen und Anti-Pattern
Typischerweise sind die größten Gewinne bei der Reduzierung der Laufzeit durch algorithmische Änderungen zu erreichen.
Es werden typische Algorithmen aufgezeigt, die in Python besonders schnell oder langsam sind. Die richtige Nutzung der Python-Datenstrukturen werden ebenso behandelt wie der Einsatz der funktionalen Merkmale von Python.
Geschwindigkeitsmessung
Es ist nicht einfach zu messen wie schnell ein Programm wirklich ist. Wir schauen uns Lösungen für dieses Problem in Python an. Für die folgenden Kursthemen wird ein rechenzeitintensives Beispiel genutzt.
Psyco
Psyco ist ein so genannter "just-in-time-complier" (JIT), der es ermöglicht Teile des eigentlichen Bytecodes in Maschinencode zu übersetzen und damit dessen Ausführungsgeschwindigkeit u.U. beträchtlich zu erhöhen.
Die unterschiedlichen Möglichkeiten der Nutzung von Psyco werden mit Beispielen erläutert. Teilnehmer werden ermutigt ihre eigenen Programme im Kurs mit Psyco zu beschleunigen.
Numerische Berechnungen mit numpy
Numerischen Berechnungen mit großen Listen sind in Python vergleichsweise langsam, da durch die dynamische Typisierung viel Performance verloren gehen kann. Mit numpy steht ein Modul für die effiziente Arbeit mit Arrays zur Verfügung. Die Funktionalität und Nutzungsweise ist an MATLAB angelehnt.
Die grundlegenden Möglichkeiten der Arbeiten mit numpy werden dargestellt.
Nutzung mehrerer CPUs mit pyprocessing/multiprocessing
Das Modul pyprocessing ist, umbenannt in multiprocessing, Teil der Standardbibliothek von 2.6. Es erlaubt die Rechenkapazitiät mehrerer CPUs zu nutzen. Wir sehen uns das Modul kurz an und wenden es auf unser Beispiel an.
Ausblick auf die Erweiterung von Python mit anderen Sprachen
Die Ausführungsgeschwindigkeit von Python-Programmen kann durch Erweiterungen in anderen Sprachen erhöht werden. Wenn das Modul Python-Erweiterungen in anderen Sprachen nicht mitgebucht wurde, wird ein kurzer Überblick über die grundsätzlichen Möglichkeiten der Erweiterung gegeben.
Moduldauer
1 Tag
Ablauf
Die Teilnehmer können alle Arbeitsschritte direkt auf ihrem Computer nachvollziehen. Am Ende jedes Themas können sie das erworbene Wissen durch praktische Übungen festigen.
Kursmaterialien
Jeder Teilnehmer erhält ausführliche Kursunterlagen mit ausformulierten Beschreibungen der Kursinhalte und eine CD mit allen verwendeten Quelltexten und genutzter Software.
Zielgruppe
Programmierer mit Pythongrundkenntnissen oder Kombination mit Grundkursen (siehe Empfohlene Modul-Kombinationen).
Empfohlene Modul-Kombinationen
Das Modul Python-Erweiterungen in anderen Sprachen stellt eine inhaltliche Ergänzung zu diesem Modul dar.
Im Kurs Python für Wissenschaftler und Ingenieure werden ebenfalls relevante Themen, die zum Inhalt dieses Moduls passen behandelt.
Das Modul kann mit den Kursen Python für Nichtprogrammierer oder Python für Programmierer kombiniert werden.
News
Gründer der Python Academy erhält PSF Community Service Award
mehr dazu ...
Kurs: "Python for Programmers" (Englisch) in Leipzig vom 6. - 8. Februar 2012
details ...
Kurs: "SQLAlchemy" (Englisch) in Leipzig am 9. Februar 2012
details ...
Kurs: "Camelot" (Englisch) in Leipzig am 10. Februar 2012
details ...
Nächster Pythonstammtisch am 14. Februar 2012
mehr dazu ...
Kurs: "Python for Scientists and Engineers" (Englisch) in Chicago (USA) 27. Februar bis 2. März
mehr dazu ...
Tutorial: "Faster Python Programs through Optimization" (Englisch) in Santa Clara (USA) am 7. März auf der PyCon US 2012
mehr dazu ...
Tutorial: "Plotting with matplotlib" (Englisch) in Santa Clara (USA) am 8. März auf der PyCon US 2012
mehr dazu ...
Vortrag: "Python and HDF5 - Fast Storage for Large Data" (Englisch) in Santa Clara (USA) am 10. März auf der PyCon US 2012
mehr dazu ...
Kurs: "Python für Programmierer" in Leipzig vom 16. - 18. April 2012
mehr dazu ...
Kurs: "Python für Wissenschaftler und Ingenieure" in Leipzig vom 19. - 21. April 2012
mehr dazu ...
Kurs: "Einstieg in Django" in Leipzig vom 23. - 25. April 2012
mehr dazu ...
Kurs: "Django für Fortgeschrittene" in Leipzig vom 26. - 27. April 2012
mehr dazu ...