Orsys

Python, programmation parallèle et calcul distribué

Par Orsys

Objectifs

  • Acquérir les concepts de la programmation parallèle
  • Savoir identifier les portions d’un programme qui sont parallélisables
  • Posséder une vision claire de l’écosystème de calcul parallèle pour Python
  • Développer des applications parallélisées (programmation asynchrone, multithreading, multiprocessing, calcul distribué)
  • Savoir exécuter des calculs sur les GPU des cartes graphiques
  • Savoir exécuter un workflow de tâches dans le Cloud

Programme

Le parallélisme et son écosystème Python

  • Les différentes formes du parallélisme et ses architectures (CPU, GPU, ASIC, FPGA, NUMA, OpenMP, MPI... ).
  • Contraintes et limites.
  • L’écosystème de calcul parallèle pour Python.

Travaux pratiques
Profiling d’un programme (cProfile, Kcachegrind et pyprof2calltree). Compiler un programme C avec les instructions SIMD. Bien installer Numpy : comment obtenir un gain de vitesse x40.

Les bases : programmation asynchrone, multithreading et multiprocessing

  • Programmation asynchrone : générateurs et asyncio.
  • Multithreading : accès concurrents, verrous…
  • Limites du multithreading en Python.
  • Multiprocessing : mémoire partagée, pools de process, conditions...
  • Premier cluster de calcul distribué avec les Managers et Proxy.

Travaux pratiques
Réalisation d'une même chaîne de traitement de données avec chaque modèle et d’un cluster de calcul distribué entre les machines des participants.

Calcul distribué : Celery, Dask et PySpark

  • Concepts et configuration.
  • Mise en œuvre de chaque librairie.

Travaux pratiques
Plusieurs exercices seront abordés (calcul matriciel, traitement d’image/texte, Bitcoin, Machine Learning...). Utilisation des notebooks Zeppelin.

Calculer sur GPU

  • Les architectures GPU : kernels, mémoire, threads...
  • Les librairies OpenCL et CUDA.
  • Mise en œuvre des librairies Scikit-cuda, PyCUDA et Numba.

Travaux pratiques
Calcul matriciel et traitement d’images. Machine Learning avec la librairie mxnet : Neural Art. Compilation Just In Time.

Autres librairies de programmation parallèle

  • Message Passing Interface avec MPI4py.
  • PyOpenCL : implémenter un code avec des systèmes hétérogènes.
  • Joblib : Les pipelines légers.
  • Greenlets : vers un meilleur multithreading.
  • Pythran : Compiler vos programmes Python sur architectures multicœurs et vectorisées.

Travaux pratiques
Exercices de base avec chaque librairie.

Créer des workflows de tâches

  • Les primitives disponibles avec Celery, Dask et PySpark.
  • Créer et superviser des workflows avec les librairies Luigi et Airflow.

Travaux pratiques
Création de pipelines de traitements de données avec chaque librairie.

Exécuter des calculs dans le Cloud

  • Panorama de l’offre Internet pour le Cloud.
  • Administrer un cluster avec Ansible.

Travaux pratiques
Effectuer des calculs dans le Cloud.

Pédagogie

70% du temps est consacré à la mise en pratique des concepts et librairies présentées. L’utilisation des notebooks Jupyter et l’exécution de code dans le Cloud apportent une réelle interactivité.

Le parallélisme et son écosystème Python

  • Les différentes formes du parallélisme et ses architectures (CPU, GPU, ASIC, FPGA, NUMA, OpenMP, MPI... ).
  • Contraintes et limites.
  • L’écosystème de calcul parallèle pour Python.

Travaux pratiques
Profiling d’un programme (cProfile, Kcachegrind et pyprof2calltree). Compiler un programme C avec les instructions SIMD. Bien installer Numpy : comment obtenir un gain de vitesse x40.

Les bases : programmation asynchrone, multithreading et multiprocessing

  • Programmation asynchrone : générateurs et asyncio.
  • Multithreading : accès concurrents, verrous…
  • Limites du multithreading en Python.
  • Multiprocessing : mémoire partagée, pools de process, conditions...
  • Premier cluster de calcul distribué avec les Managers et Proxy.

Travaux pratiques
Réalisation d'une même chaîne de traitement de données avec chaque modèle et d’un cluster de calcul distribué entre les machines des participants.

Calcul distribué : Celery, Dask et PySpark

  • Concepts et configuration.
  • Mise en œuvre de chaque librairie.

Travaux pratiques
Plusieurs exercices seront abordés (calcul matriciel, traitement d’image/texte, Bitcoin, Machine Learning...). Utilisation des notebooks Zeppelin.

Calculer sur GPU

  • Les architectures GPU : kernels, mémoire, threads...
  • Les librairies OpenCL et CUDA.
  • Mise en œuvre des librairies Scikit-cuda, PyCUDA et Numba.

Travaux pratiques
Calcul matriciel et traitement d’images. Machine Learning avec la librairie mxnet : Neural Art. Compilation Just In Time.

Autres librairies de programmation parallèle

  • Message Passing Interface avec MPI4py.
  • PyOpenCL : implémenter un code avec des systèmes hétérogènes.
  • Joblib : Les pipelines légers.
  • Greenlets : vers un meilleur multithreading.
  • Pythran : Compiler vos programmes Python sur architectures multicœurs et vectorisées.

Travaux pratiques
Exercices de base avec chaque librairie.

Créer des workflows de tâches

  • Les primitives disponibles avec Celery, Dask et PySpark.
  • Créer et superviser des workflows avec les librairies Luigi et Airflow.

Travaux pratiques
Création de pipelines de traitements de données avec chaque librairie.

Exécuter des calculs dans le Cloud

  • Panorama de l’offre Internet pour le Cloud.
  • Administrer un cluster avec Ansible.

Travaux pratiques
Effectuer des calculs dans le Cloud.

PDF

Imprimer

Envoyer

Envoyer la page à :

Formations de la même catégories (5)

Open Source School Executive Education
Python des bases à la maîtrisePar Open Source School Executive Education

Cette formation a pour objectifs de vous permettre de maîtriser les aspects essentiels du langage Python et de son écosystème, afin de vous permettre d'appréhender de façon autonome la réalisation d'applications ambitieuses dans les domaines de votre métier.

Global Knowledge
Le langage Python pour Machine LearningPar Global Knowledge

La Data Science nécessite des compétences spécifiques afin de prévoir le comportement des clients ou d’anticiper des tendances.
Cette formation vous permettra de découvrir l’analyse de données ainsi que le Machine Learning via Python, les différentes étapes qui interviennent lors de l’élaboration d’un modèle statistique, ainsi que l’analyse textuelle et la Data Visualisation.

Data Value
Python pour la Data SciencePar Data Value

Connaître et savoir utiliser les librairies incontournables de Python pour la data science : La Scipy Stack
Connaître et utiliser les principales librairies de visualisation de données et notamment orientées cartographie
Savoir manipuler des données volumineuses ne tenant pas en mémoire
Avoir une bonne compréhension de l'écosystème scientifique de Python, savoir trouver ses librairies et juger de leur qualité

Arkesys
Python - Perfectionnement : Programmation orientée objet, interface graphiquePar Arkesys

La formation en quelques mots

Python est un langage devenu populaire en raison de la simplicité d’écriture et de mise en œuvre des analyses et des programmes, de son accessibilité (environnement open-source), et de son champ d’application complet grâce aux nombreuses librairies qui disposent de fonctions relatives à plusieurs domaines comme la Data Science, la Data Visualisation, le calcul scientifique. Ce langage permet de développer des applications variées.
La formation a pour objectif de permettre aux personnes ayant des bases en programmation d’approfondir les différentes notions de bases du langage Python, d’apprendre comment créer et implémenter des interfaces graphiques, tester et gérer un programme. La formation abordera également les différents outils Python qui permettent la manipulation de fichiers, de modules et de bibliothèques.

Thèmes principaux

Retengr
Langage Python – Développez en Python 3Par Retengr

Poussé par l’apparition de librairies dédiées à la Datascience, le langage Python connait depuis quelques années un vif regain d’intérêt. Longtemps considéré comme un simple langage, Python s’est enrichi de fonctionnalités beaucoup moins évidentes à mettre en œuvre et qui composent toute sa puissance. Cette formation ne traite pas de Data Science, ce sujet est traité dans notre formation « Pensez comme un Data Scientist ».

Nous utilisons les cookies afin de fournir les services et fonctionnalités proposés sur notre site et afin d’améliorer l’expérience de nos utilisateurs. En cliquant sur ”J’ai compris”, vous acceptez l’utilisation de ces cookies.