Développeurs Python, adminsitrateurs systèmes souhaitant automatiser des tâches, ingénieurs et data scientists en quête de puissance de calcul, développeurs de sites Internet à forte charge
Durée : 5 jours - 35 heures
Tarif : Nous contacter pour une formation INTER – INTRA ou en COURS PARTICULIER
La formation est délivrée en présentiel ou distanciel (e-learning, classe virtuelle, présentiel et à distance). Le formateur alterne entre méthodes démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation). La validation des acquis peut se faire via des études de cas, des quiz et/ou une certification.
Cette formation est animée par un consultant-formateur dont les compétences techniques, professionnelles et pédagogiques ont été validées par des diplômes et/ou testées et approuvées par l’éditeur et/ou par Audit Conseil Formation.
Pratique régulière du langage Python et si possible des librairies numpy et pandas.
- Evaluation des besoins et objectifs en pré et post formation
- Evaluation technique des connaissances en pré et post formation
- Evaluation générale du stage
Les différentes formes de la programmation parallèle
Au sein d'un même programme: multithreading, SIMD, compilation Just In Time
Sur une même machine: multiprocessing, calcul distribué
Sur plusieurs machine: calcul distribué, HPC
Bien comprendre les différences entre multithreading, multiprocessing et programmation asynchrone
Les bases de la programmation parallèle
Multithreading: mise en oeuvre, gestion des accès concurrents
Multiprocessing: mise en oeuvre, mémoire partagée, pools de process
Présentation des différentes primitives associées au multiprocessing et multithreading: sémaphores, files d'attente, conditions, barrières, ...
Comprendre les limites du multithreading en Python: Le GIL et savoir le désactiver
Présentation de l'écosystème de calcul parallèle de Python
Panorama des différentes librairies par thématique: Just In Time Compilation, multithreading, Multiprocessing, Calcul distribué, Grille de calcul, Calcul sur GPU...
Monitorer les performances de votre programme : les différents types de profileurs et leur
mise en oeuvre
Créer son propre profileur
Identifier ses goulots d'étranglement, savoir mesurer les performances de votre matériel :
disque dur, mémoire, cpu
Pensez à optimiser votre code avant de le paralléliser : techniques et algorithmes
Compilation Just in Time avec Pypy et numba
Logger et deboguer vos process avec Eliot
Calcul distribué avec Celery et dramatiq: exécuter des tâches en arrière plan dans vos
programmes Django avec Dramatiq
Ray: distribuez vos tâches avec simplicité et performance
Vaex: manipulez des données tabulaires en utilisant toutes la puissance de votre ordinateur et les algorithmes les plus performants
Dask: manipulez des données numériques ou tabulaires qui ne tiennent pas en RAM en les parallélisant automatiquement sur votre ordinateur portable, réseau local ou supercalculateur
XArray: manipulez les fichiers scientifiques et big data ((NetCDF, HDF5, parquet...) avec facilité et en bénéficiant de tous les avantages de Numpy, Pandas et Dask
Visualiser des données volumineuses avec DataShader et Holoviz
Comprendre l'architecture matérielle d'un GPU
Savoir choisir son matériel pour calculer sur GPU avec Python
Panorama des différentes librairies de Calcul sur GPU avec Python
Comprendre quand un GPU est préférable à un CPU et quand il ne l'est pas
Compilation Just In Time sur GPU avec Numba
Calcul numérique avec Cupy
Manipuler les dataframes Pandas avec RapidsAI
Présentation des concepts: tâches, paramètres, flows...
Créer un workflow de traitement de données: téléchargement, filtres, transformations, sauvegarde
Gérer les erreurs et reprises sur incidents
Superviser l'exécution de votre workflow