Programme INITIATION AU CALCUL DISTRIBUÉ AVEC PYTHON

Participants :

Développeurs Python, adminsitrateurs systèmes souhaitant automatiser des tâches, ingénieurs et data scientists en quête de puissance de calcul, développeurs de sites Internet à forte charge

Durée : 5 jours - 35 heures
Tarif : Nous contacter pour une formation INTER – INTRA ou en COURS PARTICULIER

La formation est délivrée en présentiel ou distanciel (e-learning, classe virtuelle, présentiel et à distance). Le formateur alterne entre méthodes démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation). La validation des acquis peut se faire via des études de cas, des quiz et/ou une certification.

Cette formation est animée par un consultant-formateur dont les compétences techniques, professionnelles et pédagogiques ont été validées par des diplômes et/ou testées et approuvées par l’éditeur et/ou par Audit Conseil Formation.

Dates des formations
Contactez-nous pour des informations sur les disponibilités pour cette formation.
Logo ACF

Demande de devis

Formation
Cadre
Nom/Prénom
Société
E-mail
Téléphone
Période
Evaluer mon niveau

Les objectifs

Comprendre
Comprendre
les concepts de la programmation parallèle
Savoir
Savoir
identifier quelles parties d'un programme son parallélisables et identifier les facteurs limitant
les
les
performances de votre programme
Posséder
Posséder
une vue d'ensemble de l'écosystème de calcul parallèle de Python

pré-requis

Pratique régulière du langage Python et si possible des librairies numpy et pandas.

Moyens pédagogiques, techniques et d'encadrement

  • 1 poste de travail complet par personne
  • De nombreux exercices d'application
  • Mise en place d'ateliers pratiques
  • Remise d'un support de cours
  • Remise d'une attestation de stage

Modalités d'évaluation des acquis

- Evaluation des besoins et objectifs en pré et post formation
- Evaluation technique des connaissances en pré et post formation
- Evaluation générale du stage

Accessibilité handicapés

  • Au centre d’affaires ELITE partenaire d’ACF à 20 m.
  • Guide d’accessibilité à l’accueil.

Le Programme

Jour 1 : Les concepts de la programmation parallèle

Les différentes formes de la programmation parallèle

Au sein d'un même programme: multithreading, SIMD, compilation Just In Time
Sur une même machine: multiprocessing, calcul distribué
Sur plusieurs machine: calcul distribué, HPC
Bien comprendre les différences entre multithreading, multiprocessing et programmation asynchrone

Les bases de la programmation parallèle

Multithreading: mise en oeuvre, gestion des accès concurrents
Multiprocessing: mise en oeuvre, mémoire partagée, pools de process
Présentation des différentes primitives associées au multiprocessing et multithreading: sémaphores, files d'attente, conditions, barrières, ...
Comprendre les limites du multithreading en Python: Le GIL et savoir le désactiver

Présentation de l'écosystème de calcul parallèle de Python

Panorama des différentes librairies par thématique: Just In Time Compilation, multithreading, Multiprocessing, Calcul distribué, Grille de calcul, Calcul sur GPU...

Jour 2 matin : Profiling et Optimisation

Monitorer les performances de votre programme : les différents types de profileurs et leur
mise en oeuvre
Créer son propre profileur
Identifier ses goulots d'étranglement, savoir mesurer les performances de votre matériel :
disque dur, mémoire, cpu
Pensez à optimiser votre code avant de le paralléliser : techniques et algorithmes
Compilation Just in Time avec Pypy et numba
Logger et deboguer vos process avec Eliot

Jour 2 après midi : calcul distribué

Calcul distribué avec Celery et dramatiq: exécuter des tâches en arrière plan dans vos
programmes Django avec Dramatiq
Ray: distribuez vos tâches avec simplicité et performance

Jour 3 : Big Data

Vaex: manipulez des données tabulaires en utilisant toutes la puissance de votre ordinateur et les algorithmes les plus performants
Dask: manipulez des données numériques ou tabulaires qui ne tiennent pas en RAM en les parallélisant automatiquement sur votre ordinateur portable, réseau local ou supercalculateur
XArray: manipulez les fichiers scientifiques et big data ((NetCDF, HDF5, parquet...) avec facilité et en bénéficiant de tous les avantages de Numpy, Pandas et Dask 
Visualiser des données volumineuses avec DataShader et Holoviz

Jour 4 : Calculer sur GPU

Comprendre l'architecture matérielle d'un GPU
Savoir choisir son matériel pour calculer sur GPU avec Python
Panorama des différentes librairies de Calcul sur GPU avec Python
Comprendre quand un GPU est préférable à un CPU et quand il ne l'est pas
Compilation Just In Time sur GPU avec Numba
Calcul numérique avec Cupy
Manipuler les dataframes Pandas avec RapidsAI

Jour 5 : Créer des workflows de tâches avec Prefect : 0,5 jour

Présentation des concepts: tâches, paramètres, flows...
Créer un workflow de traitement de données: téléchargement, filtres, transformations, sauvegarde
Gérer les erreurs et reprises sur incidents
Superviser l'exécution de votre workflow