Formation Parallélisation avec Python

Formation Parallélisation avec Python

Accélérez vos applications Python grâce à la parallélisation et maîtrisez le multithreading, le multiprocessing et le calcul distribué avec Python.

Prix (Formation inter-entreprise)

2800€ HT / personne

Durée

5 jours

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

La formation Parallélisation avec Python vous permettra de transformer vos scripts Python en outils performants capables d’exploiter pleinement vos ressources matérielles.

Durant 5 jours, découvrez comment optimiser vos applications grâce à la parallélisation sur CPU, GPU et clusters, en utilisant des outils modernes comme Ray, Dask ou Numba.

Vous apprendrez :
- à profiler vos programmes,
- à contourner les limites du GIL
- et à tirer profit des architectures parallèles pour des tâches comme le traitement d’images, l’analyse de données ou les calculs massifs.

En fin de formation, vous saurez non seulement paralléliser vos tâches sur des machines locales, mais également déployer des traitements distribués sur des clusters pour maximiser vos performances.

Cette formation s’adresse aux développeur·euse·s web, administrateur·rices·s système ou data scientist.


Vous cherchez un autre type de formations python ?

Nos formations suivantes pourraient alors vous intéresser !
- formation Python
- formation Python Avancé
- formation Python pour la data science
- formation Python pour la sécurité et l’administration système
- formation Python Pandas et dataframe

Les objectifs

  • Profiler vos programmes pour identifier les limites du parallélisme
  • Comprendre et implémenter le multithreading et multiprocessing
  • Contourner le GIL de Python pour maximiser les performances
  • Exploiter les GPU avec Python (cuPy, numba, Dask)
  • Mettre en œuvre le calcul distribué sur plusieurs machines
  • Choisir le matériel (CPU, TPU, GPU, hyperthreadé ou non) et les frameworks de calcul parallèle adaptés à vos besoins

Pré-requis

  • pratique du langage python
  • pratique des librairies numpy, pandas et matplotlib
  • Python dans une version récente (>= 3.10)
  • Ordinateur portable à apporter

Le programme de la formation Parallélisation avec Python

Jour 1 & 2 : Introduction à la parallélisation — Concepts et Profiling

  • Présentation des concepts du parallélisme
    • Les changements dans le paradigme de programmation
    • Panorama des architectures matérielles et logicielles
      • architectures matérielles : CPU/GPU/TPU
      • architectures logicielles : OpenCL/CUDA/MPI/OpenMP...
    • Identifier les limites du parallélisme
    • Panorama des librairies python de calcul parallèle
      • JIT compilation
      • Programmation asynchrone
      • Multithreading
      • Calcul distribué...
    • Supercalculateurs et ordinateurs quantiques
  • Profiler un programme
    • La loi d'Amdahl
    • Les 2 types de profileurs
      • profileurs statistiques
      • profileurs évènementiels
    • Panorama des librairies de profiling
      • profiling pour la mémoire
      • profiling pour le temps d'exécution
      • profiling pour la consommation électrique
    • Les outils de visualisation de votre code

Mises en pratique :
- Prise en mains de son PC
- Identification des caractéristiques matérielles
- Observation de l'impact du changement de fréquence sur la rapidité de calcul - Mesure et visualisation du temps d'exécution des différentes fonctions d'un programme, de leur encombrement mémoire et de la consommation électrique

Jour 2 & 3 : Parallélisation et optimisation avec Python

  • Les bases du parallélisme
    • Les concepts de base
      • multithreading et multiprocessing
      • verrous/sémaphores
    • La synchronisation des processus
      • Synchronisation avec les files/piles
      • Évènements et barrières...
    • Paralléliser les fonctions d'un programme avec le multithreading
    • Paralléliser votre programme sur une ou plusieurs machines avec le multiprocessing
    • Comprendre et contourner les limites du GIL (Python 13, JIT, ...)
    • Bien utiliser ses ressources matérielles avec les Pools
  • La compilation Just In Time
    • Présentation des librairies
      • Nuitka, pypy, numba, pythran, cython, pycuda
    • Libération du GIL

Mises en pratique :
- Parallélisation de différentes tâches (traitement d'images, analyse de fichiers csv, téléchargement de données...) avec le multithreading et multiprocessing
- Parallélisation et compilation avec numba sur CPU
- Libération du GIL avec Cython

Jour 4 : Le calcul distribué

  • Présentation des principaux frameworks mis en oeuvre
    • ray
    • celery/dramatiq
    • dask
  • Calcul parallèle avec dask/numpy/pandas
  • Distribution de tâches avec ray et celery

Mises en pratique :
- Parallélisation de différents traitements avec les 3 librairies
- Création d'un cluster utilisant plusieurs machines

Jour 5 : Calculer sur GPU avec Python

  • Compiler sur GPU avec numba
  • Manipuler des dataframes avec polars, cudf et dask sur GPU
  • Calculer avec des tableaux volumineux en utilisant cupy, xarray et dask sur GPU

Mises en pratique :
- Manipulation de dataframes volumineux sur plusieurs GPU
- Analyse de données climatiques avec xarray et dask sur plusieurs gpu et machines

Télécharger le programme

Le(s) formateur(s)

Gaël PEGLIASCO

Gaël PEGLIASCO

Avec plus de 20 ans d’expérience dans le développement informatique, Gaël a débuté son parcours en créant des jeux vidéo, motivé par sa passion pour l’intelligence artificielle et le traitement d’images.

Il a appris à maîtriser des langages tels que Python, Java, et C++, consacrant 10 ans à utiliser Python, Django et Plone.

Depuis 2014, il se spécialise dans le calcul parallèle, collaborant avec des multinationales et centres de recherche pour optimiser leurs codes sur supercalculateurs.

Défenseur de l’open source, Gaël partage son expertise au travers d'articles et de formations. Désormais, il explore l’informatique quantique, et ce toujours avec Python !

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 135 formations au catalogue, 1618 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Formation Parallélisation avec Python

Accélérez vos applications Python grâce à la parallélisation et maîtrisez le multithreading, le multiprocessing et le calcul distribué avec Python.

Formation Parallélisation avec Python

La formation Parallélisation avec Python vous permettra de transformer vos scripts Python en outils performants capables d’exploiter pleinement vos ressources matérielles.

Durant 5 jours, découvrez comment optimiser vos applications grâce à la parallélisation sur CPU, GPU et clusters, en utilisant des outils modernes comme Ray, Dask ou Numba.

Vous apprendrez :
- à profiler vos programmes,
- à contourner les limites du GIL
- et à tirer profit des architectures parallèles pour des tâches comme le traitement d’images, l’analyse de données ou les calculs massifs.

En fin de formation, vous saurez non seulement paralléliser vos tâches sur des machines locales, mais également déployer des traitements distribués sur des clusters pour maximiser vos performances.

Cette formation s’adresse aux développeur·euse·s web, administrateur·rices·s système ou data scientist.


Vous cherchez un autre type de formations python ?

Nos formations suivantes pourraient alors vous intéresser !
- formation Python
- formation Python Avancé
- formation Python pour la data science
- formation Python pour la sécurité et l’administration système
- formation Python Pandas et dataframe

Les objectifs

  • Profiler vos programmes pour identifier les limites du parallélisme
  • Comprendre et implémenter le multithreading et multiprocessing
  • Contourner le GIL de Python pour maximiser les performances
  • Exploiter les GPU avec Python (cuPy, numba, Dask)
  • Mettre en œuvre le calcul distribué sur plusieurs machines
  • Choisir le matériel (CPU, TPU, GPU, hyperthreadé ou non) et les frameworks de calcul parallèle adaptés à vos besoins

Pré-requis

  • pratique du langage python
  • pratique des librairies numpy, pandas et matplotlib
  • Python dans une version récente (>= 3.10)
  • Ordinateur portable à apporter

Le programme de la formation Parallélisation avec Python

Jour 1 & 2 : Introduction à la parallélisation — Concepts et Profiling

  • Présentation des concepts du parallélisme
    • Les changements dans le paradigme de programmation
    • Panorama des architectures matérielles et logicielles
      • architectures matérielles : CPU/GPU/TPU
      • architectures logicielles : OpenCL/CUDA/MPI/OpenMP...
    • Identifier les limites du parallélisme
    • Panorama des librairies python de calcul parallèle
      • JIT compilation
      • Programmation asynchrone
      • Multithreading
      • Calcul distribué...
    • Supercalculateurs et ordinateurs quantiques
  • Profiler un programme
    • La loi d'Amdahl
    • Les 2 types de profileurs
      • profileurs statistiques
      • profileurs évènementiels
    • Panorama des librairies de profiling
      • profiling pour la mémoire
      • profiling pour le temps d'exécution
      • profiling pour la consommation électrique
    • Les outils de visualisation de votre code

Mises en pratique :
- Prise en mains de son PC
- Identification des caractéristiques matérielles
- Observation de l'impact du changement de fréquence sur la rapidité de calcul - Mesure et visualisation du temps d'exécution des différentes fonctions d'un programme, de leur encombrement mémoire et de la consommation électrique

Jour 2 & 3 : Parallélisation et optimisation avec Python

  • Les bases du parallélisme
    • Les concepts de base
      • multithreading et multiprocessing
      • verrous/sémaphores
    • La synchronisation des processus
      • Synchronisation avec les files/piles
      • Évènements et barrières...
    • Paralléliser les fonctions d'un programme avec le multithreading
    • Paralléliser votre programme sur une ou plusieurs machines avec le multiprocessing
    • Comprendre et contourner les limites du GIL (Python 13, JIT, ...)
    • Bien utiliser ses ressources matérielles avec les Pools
  • La compilation Just In Time
    • Présentation des librairies
      • Nuitka, pypy, numba, pythran, cython, pycuda
    • Libération du GIL

Mises en pratique :
- Parallélisation de différentes tâches (traitement d'images, analyse de fichiers csv, téléchargement de données...) avec le multithreading et multiprocessing
- Parallélisation et compilation avec numba sur CPU
- Libération du GIL avec Cython

Jour 4 : Le calcul distribué

  • Présentation des principaux frameworks mis en oeuvre
    • ray
    • celery/dramatiq
    • dask
  • Calcul parallèle avec dask/numpy/pandas
  • Distribution de tâches avec ray et celery

Mises en pratique :
- Parallélisation de différents traitements avec les 3 librairies
- Création d'un cluster utilisant plusieurs machines

Jour 5 : Calculer sur GPU avec Python

  • Compiler sur GPU avec numba
  • Manipuler des dataframes avec polars, cudf et dask sur GPU
  • Calculer avec des tableaux volumineux en utilisant cupy, xarray et dask sur GPU

Mises en pratique :
- Manipulation de dataframes volumineux sur plusieurs GPU
- Analyse de données climatiques avec xarray et dask sur plusieurs gpu et machines

Télécharger le programme

Le(s) formateur(s)

Gaël PEGLIASCO

Gaël PEGLIASCO

Avec plus de 20 ans d’expérience dans le développement informatique, Gaël a débuté son parcours en créant des jeux vidéo, motivé par sa passion pour l’intelligence artificielle et le traitement d’images.

Il a appris à maîtriser des langages tels que Python, Java, et C++, consacrant 10 ans à utiliser Python, Django et Plone.

Depuis 2014, il se spécialise dans le calcul parallèle, collaborant avec des multinationales et centres de recherche pour optimiser leurs codes sur supercalculateurs.

Défenseur de l’open source, Gaël partage son expertise au travers d'articles et de formations. Désormais, il explore l’informatique quantique, et ce toujours avec Python !

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 135 formations au catalogue, 1618 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012