Vous êtes ici : Accueil > Informatique > Formation > Langages de programmation (10) > Python – Calcul parallèle

Formation Python – Calcul parallèle


Objectifs

  • Comprendre le paradigme de la programmation parallèle
  • Identifier les goulots d'étranglement et les parties parallélisables de votre programme
  • Avoir une bonne compréhension du paysage des librairies de calcul parallèle disponibles pour 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

Public

Développeurs, chefs de projets, data scientists développant des applications scientifiques requérant d'importantes capacités de calculs

Pré-requis

Pour suivre ce stage dans de bonnes conditions, il est recommandé d'avoir suivi en amont la formation Python – Bases et introduction aux librairies scientifiques ou d'avoir atteint par la pratique un niveau équivalent

Méthode pédagogique

Cette formation est majoritairement pratique. L'ensemble des TP sera réalisé sur des machines louées dans le cloud et dotées de cartes graphiques NVIDIA ainsi que sur les postes des participants. Les concepts présentés font l'objet de TP d'illustration afin de permettre leur assimilation. Environ 70% du temps est consacré à la pratique des librairies présentées. L'interactivité est garantie au travers de TP réalisés en majeure partie sur les notebooks Jupyter/Lab.
Pédagogie active mêlant exposés, exercices et applications pratiques dans le logiciel Python.

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 œuvre 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

Modalités d'évaluation

Un formulaire d'auto-évaluation proposé en amont de la formation nous permettra d'évaluer votre niveau et de recueillir vos attentes. Ce même formulaire soumis en aval de la formation fournira une appréciation de votre progression.
Des exercices pratiques seront proposés à la fin de chaque séquence pédagogique pour l'évaluation des acquis.
En fin de formation, vous serez amené(e) à renseigner un questionnaire d'évaluation à chaud.
Une attestation de formation vous sera adressée à l'issue de la session.
Trois mois après votre formation, vous recevrez par email un formulaire d'évaluation à froid sur l'utilisation des acquis de la formation.

Solutions de financement

Cette formation peut être financée :
  • dans le cadre du plan de développement des compétences de votre Entreprise
  • par l’OPCO (opérateur de compétences) de votre Entreprise ou le FAF (Fonds d’Assurance Formation) pour les professionnels libéraux
  • par Pôle Emploi dans le cadre du dispositif de l'Aide Individuelle à la Formation (soumis à accord de votre Agence)
  • à titre personnel

Accessibilité

Vous souhaitez suivre notre formation Python - Calcul parallèle et êtes en situation de handicap ? Merci de nous contacter afin que nous puissions envisager les adaptations nécessaires et vous garantir de bonnes conditions d'apprentissage

La formation Python – Calcul parallèle dans nos Centres ou en distanciel

  • Tarif : 3 000 € HT
    -10% dès 2 inscrits, -20% à partir de 3

  • Option(s) :
    - Forfait déjeuners : 100€ HT

Nos prochaines sessions

A distance

du 25 au 29 novembre 2024


Lyon

du 13 au 17 mai 2024

du 4 au 8 novembre 2024


Paris

du 24 au 28 juin 2024

du 9 au 13 décembre 2024


Toulouse

du 22 au 26 avril 2024
du 14 au 18 octobre 2024


Bordeaux | Lille | Marseille | Nantes | Nice | Strasbourg

Demandez l'ouverture d'une nouvelle session dès 2 collaborateurs intéressés
Demande d'ouverture d'une nouvelle session
Notre formation Python – Calcul parallèle vous intéresse mais vous n'êtes pas disponible aux dates proposées ?
Les lieux d'organisation ne vous conviennent pas ?
Faites-nous part de votre demande d'ouverture d'une nouvelle session dans l'une des 9 villes proposées.
Un conseiller vous confirmera au plus vite la possibilité d'ajout de cette nouvelle session.

    * : champ obligatoire

    Formation souhaitée *

    Ville souhaitée *

    Période de déroulement souhaitée

    Début :      

    Fin :      

    Votre message

    Nombre de participants *

    Vos coordonnées :

    Civilité *

    Votre prénom *

    Votre nom *

    Votre Société *

    Votre email *

    Votre téléphone

    Je souhaite recevoir par email :

    le catalogue formation (2 fois par an)des lettres d'information ponctuelles (6 par an au maximum)

    En soumettant ce formulaire, j'accepte que les informations saisies soient exploitées dans le cadre de la demande d'ouverture d'une nouvelle session de formation interentreprises et de la relation commerciale qui peut en découler

    Pour connaître et exercer vos droits, notamment de retrait de votre consentement à l'utilisation des données collectées par ce formulaire, veuillez consulter notre politique de confidentialité



    Plans d'accès / hébergements
    La formation Python – Calcul parallèle dans votre Entreprise ou en distanciel

    • Tarif : Nous consulter

    Demande de devis personnalisé
    Décrivez-nous votre projet au moyen du formulaire ci-dessous et recevez un devis personnalisé dans les meilleurs délais.

      * : champ obligatoire

      Formation souhaitée *

      Dans quel contexte s'inscrit ce projet ?

      Quels sont les objectifs de cette formation ?

      Nombre de participants

      Min : 

      Max :

      Quel est le profil des participants ?

      Quel logiciel est à votre disposition ?

      Une durée est-elle impartie pour cette formation ?

      Min :

      Max :

      Sur quelle période la formation pourrait-elle se dérouler ?

      Début :

      Fin :      

      S’agira-t-il d’une formation en distanciel ou en présentiel et si oui dans quelle ville ? *

      Des cas applicatifs de l’Entreprise pourront-ils être utilisés pour illustrer la formation ?

      Un ou plusieurs stagiaires sont-ils en situation de handicap et si oui des adaptations sont-elles à envisager ?

      Avez-vous des commentaires ?

      Vous pouvez nous adresser un fichier (cahier des charges, ...)

      Vos coordonnées :

      Civilité *

      Votre prénom *

      Votre nom *

      Votre Société *

      Votre email *

      Votre téléphone *

      Je souhaite recevoir par email :

      le catalogue formation (2 fois par an)des lettres d'information ponctuelles (6 par an au maximum)

      En soumettant ce formulaire, j'accepte que les informations saisies soient exploitées dans le cadre de la demande de devis pour une formation intra-entreprise et de la relation commerciale qui peut en découler

      Pour connaître et exercer vos droits, notamment de retrait de votre consentement à l'utilisation des données collectées par ce formulaire, veuillez consulter notre politique de confidentialité



      Date de dernière modification : 14/11/2023