Python - calcul parallele
Data Value
Non finançable CPF
Tout public
Présentiel
Public admis
Salarié en poste
Demandeur d'emploi
Entreprise
Etudiant
Prix
3900 €
Durée
Nous contacter
Niveau visé
Non diplômante
Localité
En présentiel
Découvrez les localités disponibles pour suivre cette formation en présentiel.
Objectifs
Objectifs
Développer des compétences avancées pour exploiter efficacement les architectures de calcul parallèle en Python, en maîtrisant les techniques de multithreading, multiprocessing, calcul distribué et traitement GPU afin d'optimiser les performances des applications et workflows de traitement de données.
Compétences visées
- Appréhender le paysage de calcul parallèle avec Python
- Maîtriser les concepts et terminologies de la programmation parallèle
- Identifier les goulots d'étranglement et les parties parallélisables de votre programme
- Utiliser efficacement les librairies de calcul parallèle en Python
- Savoir développer des applications parallélisées (multithreading, multiprocessing, calcul distribué, cloud computing)
- Exécuter des calculs sur GPU (cartes graphiques)
- Créer des workflows de traitement de données
Développer des compétences avancées pour exploiter efficacement les architectures de calcul parallèle en Python, en maîtrisant les techniques de multithreading, multiprocessing, calcul distribué et traitement GPU afin d'optimiser les performances des applications et workflows de traitement de données.
Compétences visées
- Appréhender le paysage de calcul parallèle avec Python
- Maîtriser les concepts et terminologies de la programmation parallèle
- Identifier les goulots d'étranglement et les parties parallélisables de votre programme
- Utiliser efficacement les librairies de calcul parallèle en Python
- Savoir développer des applications parallélisées (multithreading, multiprocessing, calcul distribué, cloud computing)
- Exécuter des calculs sur GPU (cartes graphiques)
- Créer des workflows de traitement de données
Programme
- Etat de l'art de la discipline et concepts de base
Historique des supercalculateurs
Comprendre les différentes architectures disponibles pour le calcul parallèle (CPU, GPU, TPU, ASIC, FPGA, NUMA... )
Tout n'est pas parallélisable : comprendre les limites de la programmation parallèle
Présentation du paysage de calcul parallèle avec Python
Travaux pratiques
Identifier les capacités matérielles de votre ordinateur. Mesurer les performances/limites de votre configuration (disques, mémoire, processeurs, ...).
Configurer son environnement de calcul parallèle.
Administrer une ferme de serveurs avec ansible
- Les concepts de la programmation parallèle
Comprendre la terminologie: programmation asynchrone, concurrente, distribuée, multithreading, multiprocessing, ...
Multithreading : paralléliser le code de votre programme - mise en oeuvre des concepts de base
Comprendre les limites du multithreading en Python
Multiprocessing : paralléliser votre programme sur plusieurs processeurs et mécanismes de synchronisation (verrous, sémaphores, barrières, pools de process...)
Travaux pratiques
Application des concepts de base aux travers d'exercices pratiques.
Mesurer les différences de performances entre les librairies multithreading et multiprocessing.
Premier cluster de calcul distribué avec les Managers et Proxy.
- Le calcul sur GPU
Un GPU ne se programme pas comme un CPU.
Comprendre les architectures GPU : kernels, mémoire, threads, ...
Travailler avec des cartes graphiques externes (eGPU)
Mise en oeuvre des principales librairies Python pour GPU: Cupy, PyCUDA, Numba et RapidsAI
Travaux pratiques
Identifier quand un GPU devient plus intéressant qu'un CPU.
Traitement d'images, calcul matriciel, tester la fiabilité d'un mot de passe, ...
- 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
Travaux pratiques
Batch de tâches avec Celery.
Calcul numérique et analyse de données avec Dask (array et dataframe)
Analyse de données avec les DataFrames Spark et la librairie Koalas.
- Créer un pipeline de traitement de données
Présentation des librairies Luigi et Airflow
Concevoir et superviser son workflow
Travaux pratiques
Réaliser un workflow sur un ensemble de fichiers volumineux et le superviser avec Airflow.
- Tour d'horizon des autres librairies Python pour le calcul parallèle
La compilation Just In Time avec Numba
Greenlets : vers un meilleur multithreading
MPI4Py : Message Passing Interface
Pythran : Le transpileur qui convertit votre code Python en C++
Travaux pratiques
Exercices de base illustrant les principes de chacune des librairies
Historique des supercalculateurs
Comprendre les différentes architectures disponibles pour le calcul parallèle (CPU, GPU, TPU, ASIC, FPGA, NUMA... )
Tout n'est pas parallélisable : comprendre les limites de la programmation parallèle
Présentation du paysage de calcul parallèle avec Python
Travaux pratiques
Identifier les capacités matérielles de votre ordinateur. Mesurer les performances/limites de votre configuration (disques, mémoire, processeurs, ...).
Configurer son environnement de calcul parallèle.
Administrer une ferme de serveurs avec ansible
- Les concepts de la programmation parallèle
Comprendre la terminologie: programmation asynchrone, concurrente, distribuée, multithreading, multiprocessing, ...
Multithreading : paralléliser le code de votre programme - mise en oeuvre des concepts de base
Comprendre les limites du multithreading en Python
Multiprocessing : paralléliser votre programme sur plusieurs processeurs et mécanismes de synchronisation (verrous, sémaphores, barrières, pools de process...)
Travaux pratiques
Application des concepts de base aux travers d'exercices pratiques.
Mesurer les différences de performances entre les librairies multithreading et multiprocessing.
Premier cluster de calcul distribué avec les Managers et Proxy.
- Le calcul sur GPU
Un GPU ne se programme pas comme un CPU.
Comprendre les architectures GPU : kernels, mémoire, threads, ...
Travailler avec des cartes graphiques externes (eGPU)
Mise en oeuvre des principales librairies Python pour GPU: Cupy, PyCUDA, Numba et RapidsAI
Travaux pratiques
Identifier quand un GPU devient plus intéressant qu'un CPU.
Traitement d'images, calcul matriciel, tester la fiabilité d'un mot de passe, ...
- 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
Travaux pratiques
Batch de tâches avec Celery.
Calcul numérique et analyse de données avec Dask (array et dataframe)
Analyse de données avec les DataFrames Spark et la librairie Koalas.
- Créer un pipeline de traitement de données
Présentation des librairies Luigi et Airflow
Concevoir et superviser son workflow
Travaux pratiques
Réaliser un workflow sur un ensemble de fichiers volumineux et le superviser avec Airflow.
- Tour d'horizon des autres librairies Python pour le calcul parallèle
La compilation Just In Time avec Numba
Greenlets : vers un meilleur multithreading
MPI4Py : Message Passing Interface
Pythran : Le transpileur qui convertit votre code Python en C++
Travaux pratiques
Exercices de base illustrant les principes de chacune des librairies
Envie d’en savoir plus sur cette formation ?
Documentez-vous sur la formation
Ces formations peuvent vous intéresser
Les formations les plus recherchées
Lyon
Toulouse
Marseille
Montpellier
Paris
Bordeaux
Dijon
Mâcon
Nantes
Rennes
Informatique CPF
Informatique en Ligne
Python
Python CPF
Python en Ligne
Intelligence artificielle
Machine learning
Vba
Technicien informatique
Technicien support informatique
Growth hacking
Administrateur systeme
Consultant en informatique
Programmation
Spark
Python Clermont-Ferrand
Python Grenoble
Python Saint-Étienne
Python Annecy
Python Chambéry
Python Roanne
Python Aurillac
Python Le Pontet
Python Moirans
Python Annemasse