Julia w Optymalizacji i AI

Julia & AI

Język Julia jest rozwijany przez badaczy Massachusetts Institute of Technology i został specjalnie zaprojektowany, aby rozwiązać typowe problemy spotykane w obliczeniach numerycznych i zagadnieniach AI. Julia łączy efektywny i wygodny proces tworzenia aplikacji znany z języków typu Python i Matlab z poziomem wydajności porównywalnym do C, co czyni go idealnym do obliczeń wysokiej wydajności, obliczeń naukowych oraz zastosowań szeroko rozumianej sztucznej inteligencji.

Mój wkład w rozwój i popularyzację tego nowego narzędzia obejmuje:

Cloud computing

W przeszłości zajmowałem się również tworzeniem metod i narzędzi dla przetwarzania danych i obliczeń w chmurze. W szczególności prowadziłem m.in. szereg badań z obszaru optymalizacji kosztów cloud computing.
W roku 2016 wprowadziłem do dydaktyki SGH wykład z przedmiotu Cloud Computing. Był to ówcześnie pierwszy tego typu wykład akademicki w Polsce. Dzięki powyższemu wykładowi w roku 2020 uzyskałem najwięcej głosów w ankiecie na najbardziej wyróżniającego się wykładowcę SGH w rankingu Samorządu Studentów – (por. 29. Godlewski W., Hurbik D., Jawor R., Lizon R., Marek J., Pechcińska A. (2022) Zajęcia zdalne oczami studentów SGH, Komisja ds. Jakości Kształcenia Samorządu Studentów SGH, grudzień 2020)
Ciągle zajmuję się wykorzystaniem chmury do prowadzenia analiz Machine Learning/Big Data oraz klastrów obliczeniowych (HPC coputing). Więcej szczegółów poniżej:

Szkolenia

Prowadzę szkolenia z zakresu metod machine learning oraz przetwarzania danych w chmurze. Szczegółowy zakres szkolenia jest dopasowywany do indywidualnych potrzeb zamawiającego.
Poniżej propozycje szkoleń. Szkolenia mogą być prowadzone w języku polskim bądź angielskim w zależności od potrzeb zamawiającego.

Optymalizacja kosztów infrastruktury w chmurze

Celem szkolenia jest przedstawienie metod i narzędzi prowadzących do optymalizacji kosztów infrastruktury w chmurze.
Uczestnicy szkolenia poznają mechanizmy, które prowadzą do ograniczania kosztów TCO w modelu cloud computing. W szczególności podejście cloud computing zostanie porównane z tradycyjną infrastrukturą on-site.
Warto podkreślić, że największe oszczędności zastosowanie technologii chmurowych przynosi dostosowanie architektury wdrożeniowej systemu do modelu przetwarzania. Dlatego znaczna część szkolenia zostanie poświęcona metodą optymalnego projektowania tej infrastruktury.
Kurs jest rekomendowany dyrektorom działów IT oraz osobom odpowiedzialnym za ograniczanie kosztów infrastruktury IT.
Czas szkolenia: 6h.
  1. Wprowadzenie do cloud computing
    • Wirtualne serwery w chmurze
    • Wirtualne dyski w chmurze (blokowe oraz typu key-value storage)
    • Usługi zarządzania bazami danych (SQL oraz NoSQL)
    • Programowalna infrastruktura
  2. Mechanizmy powstawania kosztów w chmurze - porównanie z infrastrukturą on-site
  3. Optymalizacja kosztów cloud computing
    • Monitorowanie infrastruktury
    • Serwery jako zasoby tymczasowe zorientowane na zadania
    • Autoskalowanie infrastruktury
    • Reserved instances
    • Rynek spot na moc obliczeniową w chmurze (AWS EC2 spot)

Wprowadzenie do przetwarzania w chmurze

Kurs wprowadzający do zagadnień związanych z przetwarzaniem danych w chmurze oraz przenoszenia systemów on-site do chmury.
Czas trwania kursu: 4-8h

Mastering Amazon Web Services API

Kurs wprowadzający do programistycznego zarządzania infrastrukturą w chmurze Amazon Web Services. Udział w zajęciach jest polecany dla programistów oraz administratorów systemowych w firmach wdrażających przetwarzanie danych w chmurze.
Kurs może być zrealizowany w oparciu o język Python 2/3 (biblioteka boto) lub Java (AWS SDK for Java) -do wyboru przez zamawiającego.

Typowy czas trwania szkolenia: 6h

Apache spark a chmura obliczeniowa

Celem kursu jest zaznajomienie uczestników z architekturą oraz przetwarzaniem danych za pomocą platformy Apache Spark - wiodącego narzędzia w analityce BigData. Poszczególne aspekty technologiczne są ilustrowane studiami przypadków.
Kurs może być zrealizowany w oparciu o język Python, Scala lub Java (do wyboru przez zamawiającego)
Czas trwania kursu: 8h

Bezpieczeństwo danych w chmurze

Celem szkolenia jest przedstawienie zagadnień i dobrych praktyk związanych z projektowanie bezpiecznej architektury w ramach chmury Amazon Web Services.
Czas szkolenia: 4h

Język Python i analiza danych w chmurze

Czas trwania szkolenia: 2 dni.
  1. Środowisko pracy programisty Python – Anaconda/Spyder
  2. Abecadło programisty Python
    • Struktury danych – listy, słowniki oraz krotki
    • Funkcje
    • Programowanie funkcyjne
  3. Import i eksport danych
    • praca z plikami CSV
    • praca z danymi JSON
    • praca z relacyjnymi bazami danych (Oracle, MS SQL)
    • pobieranie danych z sieci WWW
    • Przetwarzanie dat i czasu
  4. Kierunki rozwoju języka Python dialekty Python 2 oraz Python 3
  5. Obliczenia numeryczne i machine learning
    • Wprowadzenie do pakietu numpy
    • Wprowadzenie do pakietu pandas oraz sci-kit learn
    • Wizualizacja danych matplotlib
    • Modele regresji
    • Modele klasyfikacyjne
    • Modele symulacyjne
  6. Efektywność pracy z językiem Python
    • Wydajność kodu w języku Python
    • Wektoryzacja obliczeń – biblioteka numpy
    • Przetwarzanie równoległe (tworzenie programów wieloprocesowych w języku Python)
  7. Python w chmurze Amazon Web Services
    • Python na instancja EC2
    • Wprowdzenie do grid computing z językiem Python
    • Klastry obliczeniowe a Python - StarCluster

Nowe metody i narzędzia dla Cloud Computing

Biorę udział w projektowaniu oraz rozwoju szeregu metod oraz narzędzi, której z jednej strony prowadzą do zmniejszenia kosztów przetwarzania danych oraz obliczeń w chmurze, a z drugiej strony zwiększają łatwość korzystania z usług chmurowych.
  1. Optymalizacja kosztów, w szczególności strategie gry na rynku EC2 Spot: On optimization of simulation execution on Amazon EC2 spot market

  2. Algorytmy dla obliczeń rozproszonych: Asynchronous Knowledge Gradient Policy for Ranking and Selection

  3. Przenoszenie do chmury istniejących środowisk obliczeniowych HPC: D-MASON in the cloud

  4. Tworzenie nowych narzędzi dla obliczeń w chmurze: SOF: Zero Configuration Simulation Optimization Framework on the Cloud