Accueil > Développement informatique et DevOps > Python, programmation parallèle et calcul distribué
Formation #DEV86

Formation Python, programmation parallèle et calcul distribué

Durée : 4 jours

Code : DEV86


Prochaines dates programmées :

Du 11 au 14 Juin 2024

Du 15 au 18 Oct. 2024

Fin d'Inscription :
Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.
Si vous avez un besoin URGENT et que vous souhaitez une date de formation plus proche que les sessions programmées (minimum 15 à 20 jours ouvrés à date de votre demande)

Objectifs

  • Appréhender le paradigme de la programmation parallèle
  • Identifier les goulots d'étranglement et les parties parallélisables de votre programme
  • Posséder une bonne compréhension du paysage des librairies de calcul parallèle disponibles pour Python
  • Savoir développer des applications parallélisées
  • Exécuter des calculs sur GPU (cartes graphiques)
  • Créer des workflows de traitement de données
Programme
1/ Etat de l'art de la discipline et concepts de base
  • Comprendre les différentes architectures disponibles pour le calcul parallèle (CPU, GPU, TPU, ASIC, FPGA, NUMA... )
  • Tout n'est pas parallélisable : les limites
  • Présentation du paysage de calcul parallèle avec Python
2/ Les concepts de la programmation parallèle
  • Comprendre la terminologie :
  • programmation asynchrone
  • concurrente
  • distribuée
  • multithreading
  • multiprocessing, ...
  • Multithreading : paralléliser le code de le programme et mettre en oeuvre des concepts de base
  • Comprendre les limites du multithreading en Python
  • Multiprocessing : paralléliser le programme sur plusieurs processeurs et mécanismes de synchronisation (verrous, sémaphores, barrières, pools de process...)
  • Premier cluster de calcul distribué avec les Managers et Proxy
3/ Calcul distribué
  • Les principales librairies : Celery, Dask et PySpark
  • Déployer et superviser un cluster de calcul parallèle avec chacune des librairies
  • Exécuter des calculs sur un cluster
4/ Le Calcule sur GPU
  • Comprendre les architectures GPU : kernels, mémoire, threads, ...
  • Les librairies OpenCL et CUDA
  • Travailler avec des cartes graphiques externes (eGPU)
  • Mise en œuvre des principales librairies Python pour GPU : Cupy, PyCUDA, Numba et RapidsAI
5/ Tour d'horizon des autres librairies Python pour le calcul parallèle
  • La compilation Just In Time avec Numba
  • MPI4Py : Message Passing Interface
  • PyOpenCL : implémenter un code avec des systèmes hétérogènes
  • Joblib : Les pipelines légers
  • Greenlets : vers un meilleur multithreading
  • Pythran : Le transpileur qui convertit votre code Python en C++
6/ Créer des workflows de tâches
  • Présentation des librairies Luigi et Airflow
  • Concevoir et superviser son workflow
7/ Exécution des calculs dans le Cloud
  • Tour d'horizon sur l’offre Internet pour le Cloud
  • Administration d'un cluster avec Ansible
Approche Pédagogique

Approche Pédagogique

  • Pédagogie très opérationnelle fondée sur l'alternance entre théorie et pratique
  • Cas pratiques
  • Remise d’outils
  • Echanges d’expériences
Public Cible

Personnes Visées

  • Développeurs
  • Data scientists
  • Data analysts
  • Chefs de projets
Dates

Dates

  • Du 11 au 14 Juin 2024
  • Du 15 au 18 Oct. 2024
  • Fin d'Inscription :
    Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.