- mer. 06 novembre 2024
- Presentation
- #jupyter, #notebook, #nbgrader
Résumé
Basé sur de nombreux outils de l’écosystème du logiciel libre, dont Jupyterhub, Nbgrader, Flask et Python, une plateforme numérique pour l’enseignement supérieur a été mise en place initialement pour les formations du département Mécanique à Lyon 1, puis récemment pour toute l’université Lyon 1 et l’INSA de Lyon dans le cadre du projet AMI Include financé par l’ANR. Cette plateforme a été présentée lors de la convention JupyterCON à Paris en Mai 2023. Elle est actuellement hébergé dans le meso-centre de calcul P2CHPD à l’université Lyon 1 et migrera dès le début 2015 dans le nouveau DataCenter universitaire CCDoua de Lyon 1.
Dans cet exposé, je présenterai tout d’abord l’infrastructure matérielle et l’environnement logiciel mise en place pour déployer cette plateforme de calcul et de traitement de données dans l’enseignement supérieur. Je montrerai l’intérêt de cette approche mutualisée en terme d’accès, de déploiement et d’empreinte énergétique. En 2024 à l’université Lyon 1, cette plateforme de calcul a été utilisée par plus d’une centaine d’enseignants et plus de 3000 étudiants dans une trentaine de cours de tous les niveaux (du L1 au M2) issus de 7 portails disciplinaires en sciences. L’intérêt pédagogique de cette plateforme est sa diversité d’utilisation dans l’enseignement supérieur en Sciences avec:
- des travaux pratiques de programmation et de traitements numériques de données.
- des notebooks interactifs et explicatifs pour expliquer aux étudiants des expériences avec un modèle mathématique, des simulations numériques, des visualisations et des analyses.
- des cours interactifs en mode learning by doing avec participation des étudiants.
- des TP virtuels reproduisant des expériences en sciences.
- des TP applicatifs en IA et machine learning (en mécanique).
J’axerai ensuite ma présentation sur la mise en place dans cette plateforme d’un environnement de cours pour des formations de niveau M2 en “Machine Learning for Computational Engineering”, nécessitant des ressources de calcul et l’utilisation de GPU (nvidia A40 ou A100) partagées.
La première étape a été la mise en place d’un environnement complet sous JupyterLab permettant l’utilisation de bibliothèques de calcul et d’IA optimisées pour GPU (tensorflow, pytorch, ..), d’extensions de programmation Python pour GPU (pycuda, cuPy, cuDF,… ). Nous avons aussi mis en place et configuré l’extension jupyter-xprahtml5-proxy permettant l’exécution dans l’interface Web JupyterLab des interfaces de visualisation 3D sous openGL de logiciels de simulations (COMSOL).
Je montrerais ensuite comment cet environnement permet de présenter aux étudiants des applications de machine learning durant le cours et de façon interactive (avec des phases d’apprentissage de quelques minutes uniquement).
Par contre le partage de ces applications avec les étudiants peut poser d’énormes difficultés pour l’enseignant. En effet la majorité des outils utilisés sont optimisés pour utiliser le maximum de ressources disponibles sur la machine, ce qui est optimal pour un utilisateur une machine. Par contre dans un environnement de cours où toutes les ressources sont partagées entre tous les étudiants suivant le cours, cette stratégie est catastrophique et donc inutilisable. Je montrerais quelles solutions ont été mise en place pour pallier ce problème pour le partage des ressources CPU et GPU et le partage de la mémoire du GPU dans l’environnement JupyterLab.
La fin de la présentation ferra un premier bilan de cette action en insistant sur les moyens mis en oeuvre, à la fois en terme d’infrastructure mais aussi RH, et pourra inclure une partie démonstration.
Références:
- M. Buffat, T. Dupriez, S. Di Loretto, JupyterCon 2023, Paris Mai 2023, “Flexible course management and validation syste m using Jupyterhub with additional services using Flask
- M. Buffat, Campus du libre, Lyon, Octobre 2023 “Retour d’expériences sur un environnement de cours basé sur JupyterHub, Nbgrader et Flask dans l’enseignement supérieur en sciences”
- M. Buffat, Jupyter-book, 2022: “Gestion de cours sous Jupyter Nbgrader”