Szkolenia Python Academy

Cel szkolenia

kod: PA-HPCP

Potrzeba skomplikowanych i wydajnych obliczeń jest dużo starsza niż przemysł komputerowy. Dzisiaj oprogramowanie jest codziennym rozwiązaniem problemów obliczeniowych - musi być ciągle od nowa projektowane lub adaptowane w niekończącej się ilości miejsc, żeby osiągnąć cele użytkowników i przeprowadzić wydajne i poprawne obliczenia. Nic tak nie może zaspokoić tych wymagań, jak język programowania, który jest łatwy do nauczenia się przez użytkowników i umożliwia im aktywne realizowanie rozwiązań swoich problemów.

Python jest właśnie tym językiem - jest łatwy do nauki, do użycia i do czytania. Składnia języka umożliwia relatywnie proste pisanie łatwego w utrzymaniu kodu, jak również użycie go jako swoistej 'formy komunikacji' z innymi ludźmi. Co więcej, jest łatwy do optymalizacji i specjalizacji kodu, celem użycia go dla wymagających, ograniczonych zasobowo obliczeń. Będzie to głównym przedmiotem tego kursu

Plan szkolenia Rozwiń listę

  1. Optymalizacja programów w Pythonie
    • Wprowadzenie do optymalizacji.
    • Strategie optymalizacyjne - Benchmarking z Pystone, profilowanie CPU z cProfile, pomiar zużycia pamięci z Guppy_PE Framework. Uczestnicy są zachęcani do przyniesienia swoich własnych programów celem profilowania ich na kursie.
    • Algorytmy i anty-wzorce projektowe - przykłady algorytmów, które działają wyjątkowo wolno lub szybko w Pythonie.
    • Odpowiednie struktury danych - porównanie wbudowanych struktur danych: list, zbiorów, podwójnie zakończonych kolejek, standardowych słowników.
    • Caching - deterministyczne i niedeterministyczne spojrzenie na caching i proces tworzenia dekoratorów.
    • Przykład - znajdziemy numerycznie i obliczeniowo wymagający problem i zaimplementujemy go w czystym Pythonie. Później popatrzymy na możliwości algorytmicznej poprawy szybkości obliczeń.
    • Testowanie prędkości - znajdowanie rozwiązań do prawidłowego pomiaru czasu wykonania programu.
    • Psyco - 'just-in-time-complier' (JIT), pozwalający na tłumaczenie części kodu bajtowego na kod maszynowy. Przykłady celem pokazania możliwości użycia Psyco.
    • Obliczenia numeryczne z NumPy - podstawy użycia biblioteki.
    • Używanie wielu jednostek obliczeniowych z PyProcessing/Multiprocessing.
    • Kombinacja strategii optymalizacyjnych.
    • Przegląd rozszerzeń do Pythona z innych języków.
  2. Rozszerzenie Pythona z innych języków
    • Wprowadzenie do przykładu, który będzie użyty w dalszej części tego modułu.
    • Użycie C-API Pythona - standardowy Python jest zaimplementowany w C i oferuje solidne API do pisania rozszerzeń.
    • Użycie plików DLL z ctypes - dostęp do bibliotek DLL lub bibliotek współdzielonych z poziomu Pythona.
    • Rozszerzenia Pythona z Pyrex/Cython.
    • Automatyczna generacja rozszerzeń ze SWIG - "Simplified Wrapper and Interface Generator", pozwalający tworzyć biblioteki C/C++ z 13 języków programowania - jednym z nich jest Python. Przykłady zarówno w C, jak i w C++.
    • Jython - podstawy implementacji Pythona w Javie. Przykłady użycia zarówno już istniejących klas Javy, jak i napisanych własnoręcznie.
    • IronPython - implementacja Pythona w .NET, pozwalająca na dostęp do wszystkich funkcjonalności .NET i stawiająca IronPythona zaraz obok C# i VisualBasica, jako pełnoprawny język platformy .NET.
    • Użycie subrutyn FORTRANa w Pythonie - przykłady użycia F2PY do połączenia FORTRAN77, FORTRAN90/95 programów z Pythonem. Projektowanie interfejsów zorientowanych obiektowo do tych bibliotek.
  3. Szybki kod z kompilatorem Cython
    • Używanie pyximport do szybkiego budowania/aktualizowania modułów rozszerzeń.
    • Użycie cython.inline() do kompilacji kodu w trakcie wykonania programu.
    • Budowanie rozszerzeń z distutils.
    • Szybki dostęp do typów wbudowanych w Pythonie.
    • Szybkie iterowanie po typach Pythonowych i C.
    • Przetwarzanie łańcuchów napisów.
    • Szybka arytmetyka.
    • Inkrementacyjne optymalizowanie kodu Cythona.
    • Wielowątkowość poza GIL(Global Interpreter Lock).
    • Wywołania zewnętrznych bibliotek C.
    • Pisanie 'opakowań' API Pythona.
    • Wywołania funkcji z C przez moduł rozszerzeń.
  4. Numeryczne obliczenia z NumPy
    • Standardowe obliczenia algebry liniowej i operacje na tablicach.
    • Konstrukcja macierzy i ich właściwości w przykładach.
    • Porównanie prędkości pomiędzy dynamicznie określanymi typami danych Pythona i definiowanymi explicite tablicami NumPy.
    • Odniesienie do zależności pomiędzy typami danych w NumPy i C.
    • Cięcie i rzutowanie macierzy - czytanie i pisanie do niezależnych części tablic, zastosowanie rzutowania do operacji na macierzach o różnych wymiarach.
    • Funkcje uniwersalne - wykonywanie wielu operacji na całych macierzach, niezależnie od ich wymiaru, przykłady użycia.
    • Algebra numeryczna.
    • Praca z brakującymi wartościami - maskowane i NA-maskowane macierze, użycie do obliczeń na tablicach z brakującymi lub nieprawidłowymi danymi.
    • Dostosowywanie obsługi błędów - NumPy oferuje wysokopoziomowe podejście do obsługi błędów bez strat na wydajności działania.
    • Wsparcie testowania - NumPy oferuje funkcjonalności pomagające w pisaniu testów - kurs pokrywa podstawy korzystania z nich.
  5. Szybkie przetwarzanie NumPy z Cythonem
    • Użycie interfejsu buforowania Pythona z Cythonem.
    • Bezpośredni dostęp do buforów danych innych rozszerzeń Pythona.
    • Odzyskiwanie metadanych o warstwie buforowej.
    • Ustawianie wydajnych widoków pamięci na zewnętrznych buforach.
    • Implementacja szybkich pętli Cythona nad macierzami NumPy.
    • Iteracja nad buforami wyeksportowanymi z NumPy
    • Implementacja prostego algorytmy przetwarzania obrazów
    • Użycie "typów skondensowanych" do implementacji algorytmu i wydajnego przeprowadzenia jego wykonania z użyciem różnych typów danych z C.
    • Użycie równolegle wykonujących się pętli celem skorzystania z przetwarzania wieloprocesorowego.
    • Budowanie modułów z OpenMP.
    • Równoległe przetwarzanie danych.
    • Przyspieszenie działania pętli używając wątków OpenMP.
Pobierz konspekt szkolenia w formacie PDF

Dodatkowe informacje

Wymagania wstępne
  • Doświadczenie w programowaniu w Pythonie jest wymagane.
  • Podstawowa znajomość języka C jest przydatna - ale nie wymagana.
Poziom trudności
Czas trwania 5 dni
Certyfikat

Uczestnicy otrzymują po zakończeniu szkolenia zaświadczenie o ukończeniu autoryzowanego kursu Python Academy.

Prowadzący

Autoryzowany wykładowca Python Academy.

Pozostałe szkolenia Python Academy | Szkolenia na zamówienie

Szkolenia powiązane tematycznie

Programowanie

Python

Formularz kontaktowy

Prosimy o wypełnienie poniższego formularza, jeśli chcą Państwo uzyskać więcej informacji o powyższym szkoleniu.






* pola oznaczone (*) są wymagane

Informacje o przetwarzaniu danych przez Compendium – Centrum Edukacyjne Spółka z o.o.

CENA 6900 PLN NETTO

FORMA SZKOLENIA ?

 

MATERIAŁY SZKOLENIOWE ?

 

WYBIERZ TERMIN SZKOLENIA

  • szkolenie dostępne w wersji stacjonarnej we wskazanej lokalizacji lub w trybie zdalnym, w zależności od preferencji uczestnika: HYBRID
    • Informacje ogólne
    • Termin gwarantowany
    • Last minute (-10%)
    • Język obowiązujący na szkoleniu
    • Polski
Zarezerwuj termin szkolenia
zamknij

Szkolenie stacjonarne

Szkolenia stacjonarne w Compendium CE odbywają się najczęściej w naszych lokalizacjach w Krakowie i Warszawie, ale także w miejscu ustalonym przez klienta. Grupa uczestnicząca w szkoleniu spotyka się w danym miejscu o określonym czasie i wraz z trenerem aktywnie uczestniczy w laboratoriach.

Szkolenie dlearning

W szkoleniach Compendium Distance Learning możesz uczestniczyć z dowolnego miejsca na świecie. Kursanci, dzięki zaawansowanej technologii, którą dostarcza Compendium CE, stale widzą i słyszą trenera, mogą mu zadawać pytania poprzez chat i mikrofon, a także uczestniczą w ćwiczeniach i laboratoriach, które rozwiązują wraz z prowadzącym. Po więcej informacji zajrzyj na stronę dlearning.eu

zamknij

Materiały papierowe

Materiały tradycyjne: cena zawiera standardowe materiały wydawane w postaci książek papierowych, drukowanych lub innej, w zależności od ustaleń z producentem.

Materiały elektroniczne

Materiały elektroniczne: są to materiały szkoleniowe w wersji elektronicznej, które w zależności od dostawcy udostępniane są za pomocą dedykowanych aplikacji: Skillpipe, eVantage itd. lub w postaci dokumentów PDF.

Materiały ctab

Materiały ctab: cena zawiera tablet ctab oraz materiały szkoleniowe w formie elektronicznej bądź tradycyjne materiały szkoleniowe i materiały dodatkowe dostarczone w wersji elektronicznej w zależności od ustaleń z producentem (w postaci dokumentów PDF lub EPUB). Tak dostarczone materiały są przystosowane pod kątem wyświetlania ich na tablecie ctab. Po więcej informacji zajrzyj na stronę ctab.

Najbliższe szkolenia Python Academy

Harmonogram szkoleń
Python Academy