Formation Python Scientifique au CC-IN2P3

Europe/Paris
202 (CC-IN2P3)

202

CC-IN2P3

CC-IN2P3/CNRS 21 Avenue Pierre de Coubertin 69100 VILLEURBANNE
Description

Formation Python, orientée "Calcul Scientifique", niveau débutant à intermédiaire.

Formateurs

Théo TURLIN et Sybille VOISIN (CC-IN2P3)

Contenu de la formation

Cette formation est dispensée uniquement en présentiel et s'adresse principalement à des débutants en programmation Python scientifique. Il est cependant recommandé d'avoir des bases en programmation (quelque soit le langage) car le contenu est assez dense

La formation offre un panorama complet de l'utilisation du language dans l'écosystème du CC-IN2P3. Les principaux sujets traités seront:

  • Language Python

    • les structures de données

    • le calcul parallèle et multithreads

    • les décorateurs

  • Outils

    • Environnements virtuels Python

    • Notebooks Jupyter (utilisation et création de noyaux personnalisés)

    • Utilisation de Dask via la plateforme Jupyter du CC-IN2P3
  • Python scientifique

    • NumPy

    • Pandas

    • Visualisation (Bokeh, Plotly)

    • Calcul GPU avec JAX

Environnement de travail

La moitié du temps sera consacrée aux travaux pratiques en s'appuyant sur une plateforme de notebooks Jupyter.

Cette infrastructure sera fournie par le service notebooks du CC-IN2P3L'accès se fera avec un login spécifique créé pour la formation, dont les informations d'identification vous seront communiqué le premier jour. 

Pour des raison d'uniformité d'environnement de travail nous vous conseillons de NE PAS utiliser votre compte personnel pendant la formation. Vous pourrez sauvegarder vos notebooks dans votre compte calcul (si vous en possédez un), ainsi que toutes les données produites pendant ces deux jours. 

En terme de navigateur internet (browser), nous recommandons l'utilisation de Firefox ou Chrome / Chromium (en particulier sous un environnement Mac OSX).

Modalités pratiques

L'inscription est gratuite mais obligatoire. Bien que n'apparaissant plus, la limite à 20 participants est maintenue. Vous pouvez cependant vous inscrire, cela nous permet de constituer une liste d'attente. Merci de nous communiquer (via l'e-mail ci-dessous) tout désistement pour nous permettre d'optimiser le processus de modération (et la gestion de la liste d'attente).

Pensez à bien vérifier votre adresse e-mail lors de l'inscription, car les modalités de cette formation (dont les informations de connexion) vous seront transmises ultérieurement par ce moyen.

Cette formation est exclusivement réservée aux utilisateurs du CC-IN2P3, aux entités académiques et partenaires du CC-IN2P3 et du CNRS plus généralement. Toute inscription ne répondant pas à ce critère pourra être refusée.

Accès au CC-IN2P3

Concernant les repas, ces derniers seront pris dans le restaurant administratif à proximité du CC-IN2P3. Le prix varie entre 15,49€, 16,18€ et 16,87€ en fonction de la formule choisie (3, 4 ou 5 éléments, le plat principal comptant pour 2). On peut soit payer en monnaie, soit en carte bleue (méthode préférable si l'on n'a pas l'appoint).

Pour tout renseignement supplémentaire, il est possible de contacter directement les organisateurs via l'adresse mail ci-dessous.

Calendrier des formations @CC-IN2P3

https://indico.in2p3.fr/category/857/

Supports de formation

Support Formations
Participants
  • Andrea JEREMIE
  • Anjli Rani
  • Charlie Paxman
  • Denis Allard
  • Julie Erismann
  • Mickael Pot
  • Mohamad Kanafani
  • Pia Loaiza
  • Stephanie Beauceron
  • +11
    • 09:30 10:00
      Accueil des participants 30m
    • 10:00 11:30
      Introduction à Python 1h 30m
      • Historique et écosystème du langage
      • Installation et environnements : Conda (miniconda & micromamba), IDE (PyCharmCE, VSCodium) et Jupyter Notebooks
      • Syntaxe de base : variables, types, opérateurs, structures de contrôle
      • Environnements virtuels et création d’un noyau personnalisé
    • 11:30 12:00
      TP - Noyau Jupyter 30m
      • Création d’un noyau pour la formation (fournissant l'ensemble des modules requis pour la formation NumPy, Bokeh, Dask & JAX)
    • 12:00 14:00
      Pause déjeuner 2h
    • 14:00 15:15
      Python avancé 1h 15m
      • Listes, dictionnaires, listes en compréhension
      • Fonctions : paramètres, valeurs par défaut, fonction Lambda
      • Gestion des erreurs
      • Introduction aux décorateurs
    • 15:15 16:00
      TP - Introduction au "Jeu de la vie" (Automate cellulaire) 45m
      • Créer une grille initiale et une fonction pour appliquer les règles du "Jeu de la vie".
      • Évolution de la grille dans le temps
    • 16:00 16:20
      Pause café 20m
    • 16:20 17:20
      Introduction aux bibliothèques scientifiques 1h
      • NumPy : calculs vectoriels et manipulation de tableaux (broadcast).
      • Bokeh & Plotly : visualisation des états du "Jeu de la vie".
    • 17:20 18:00
      TP - "Jeu de la vie" 2ème partie 40m
      • Utiliser NumPy pour gérer la grille du jeu.
      • Visualiser l'évolution dans le temps avec Bokeh & Plotly
    • 09:00 10:00
      Calcul parallèle 1h
      • Introduction au calcul parallèle et multithread
      • Présentation de Dask et utilisation dans l'écosystème du CC-IN2P3
    • 10:00 10:20
      Pause café 20m
    • 10:20 11:20
      Calcul sur GPU et introduction à JAX 1h
      • Introduction au calcul GPU : concepts de base
      • Présentation de JAX : framework de Machine Learning pour la manipulation de fonctions numériques
    • 11:20 12:00
      TP - "Jeu de la vie" accéléré 3ème partie 40m
      • Optimisation du "jeu de la vie" avec du calcul multithread
    • 12:00 14:00
      Pause déjeuner 2h
    • 13:15 14:00
      Visite Salles machines 45m

      (Activité optionnelle)

      Orateur: M. Benjamin Guillon (CC-IN2P3/CNRS)
    • 14:00 15:00
      TP - "Jeu de la vie" accéléré 4ème partie 1h
      • Paralléliser le "jeu de la vie" avec Dask (grille plus grande)
      • Étendre le "Jeu de la vie" pour une implémentation accélérée sur GPU avec JAX.
    • 15:00 16:00
      Fin des TPs, discussions et commentaires 1h
    • 16:00 16:20
      Pause café 20m
    • 16:20 17:30
      Session ouverte 1h 10m