Présentation de la formation.

La formation « Calcul Intensif et Sciences des données » est une formation commune à l'Enseirb-Matméca et à l'Université de Bordeaux. Elle s'adresse aux élèves de la filière informatique de l'Enseirb-Matmeca et du Master Informatique de l'Université de Bordeaux qui souhaitent devenir des experts en calcul et en traitement et analyse des données hautes performances.


Objectifs de la formation : acquérir une double compétence « calcul et données. »

La simulation numérique est devenue un pilier incontournable de la science. Elle permet notamment de simuler des phénomènes impossibles à observer en laboratoire, dans les domaines de la Physique, la Chimie, la Mécanique, la Climatologie, l'Astrophysique, la Biologie, et bien d'autres. La précision et l'efficacité de ces simulations repose sur une exploitation performante de moyens de calcul parallèles, et nécessite un large spectre de compétences en matière de modélisation, d'algorithmique et de programmation. Cette quête de performance est partagée par les applications destinées à extraire de l'information depuis de gros volumes de données, qui doivent faire face à des flux toujours plus imposants provenant de capteurs, de grands équipements, d'objets connectés ou de simulations numériques... La convergence entre calcul intensif et traitement des données massives est désormais un axe de développement prioritaire au niveau international. L'objectif de cette formation est précisément de former les futurs ingénieurs dans ce domaine.


Métiers.

  • Ingénieur R&D
  • Data Scientist
  • Chef de projet

Secteurs d'activité.

  • Airbus, Dassault, IBM, Thales, Total
  • CEA, EDF, IFP-EN
  • Sociétés de service
  • Banques
  • E-Commerce


Fondations.

La formation s'appuie sur des laboratoires et équipes de recherche qui ont des années d'expérience en matière de calcul intensif et traitement des données. Elle bénéficie d'une dynamique de recherche multidisciplaire unique en France qui réunit les chercheurs en mathématiques, informatique, mécanique et électronique dans ce domaine.


Le point de vue industriel.

Laurence BONNET, Directrice scientifique de la DAM, CEA.

« L'exploitation optimale des calculateurs hautes performances actuels et futurs et des données qu'ils génèrent est un enjeu majeur pour accroître la capacité prédictive de la simulation de systèmes complexes où les processus physiques sont fortement couplés et interviennent à différentes échelles de temps et d’espace -dont certaines sont inaccessibles à l’expérience- et, ainsi augmenter la confiance accordée aux simulations numériques grâce à la maîtrise des incertitudes de simulation. La capacité à travailler ensemble d'experts de haut niveau issus de disciplines variées comme l'informatique, l'analyse numérique, le génie logiciel, la science des données, la statistique ou la physique … est une des clés pour y parvenir. »

Wilfried KIRSCHENMANN, CTO Advanced Computing Technologies at ANEO.

« Pour intervenir sur les problématiques de performances intensives des chaînes de traitement, nous devons avoir une compréhension relativement fine de l'ensemble de ses maillons (matériel, réseau, architecture et implémentation logicielle, algorithmie) et de leurs interactions. La spécialité CISD aborde l'ensemble de ces maillons de façon opérationnelle. »

Jean-Thomas ACQUAVIVA, Senior Researcher, HPC & Big Data at DDN Storage.

« Alors que le monde de la simulation numériques se nourrit de plus en plus de données d'acquisition, symétriquement les approches purement orientées donnée de l'IA intègrent maintenant la simulation numérique dans leur boucle d’apprentissage. Ces convergences se retrouvent aussi bien au sein des infrastructures que de la pile logicielle. L'arrivée de la formation CISD, à la confluence de ces deux thématiques, est une excellente nouvelle pour la recherche et pour l'industrie avec l'assurance de faire émerger les talents qui relèveront les défis de demain. »


Témoignages.

J.-C. Papin, Ingénieur Recherche & Développement.

« J'ai intégré cette formation dans le but de travailler sur différentes architectures informatiques (de la machine multi-cœurs au système distribué, en passant par les accélérateurs massivement parallèles). J'y ai notamment découvert un domaine où l'on jongle entre la vision grande échelle (algorithmes distribués, gestion des échanges) et une vision locale proche du matériel. Cette formation m'a aussi ouvert au monde de la recherche et j'ai pu effectuer une thèse au CEA sur la répartition des calculs, avec un accès en «avant-première» à des accélérateurs de calcul dédiés. Cette filière permet vraiment d'acquérir un solide bagage et ouvre sur de nombreuses opportunités professionnelles, car les besoins actuels de l'industrie (simulation numérique, Deep-Learning, ...) font tous un usage intense de ressources parallèles, et cela dans vraiment tous les domaines ! »

J.M. Couteyen, Ingénieur Recherche & Développement.

« Cette formation m'a permis de bénéficier d'un socle solide en calcul haute performance. J'ai pu faire une thèse CIFRE dans un grand groupe (ex-Airbus Defence and Space, désormais ArianeGroup) qui a porté sur la parallélisation d'un code de mécanique des fluides en utilisant des techniques modernes. Ce code est notamment utilisé pour le projet Ariane 6. J'ai ensuite rejoint le centre de recherche du groupe Airbus. Les simulations d'envergures sont cruciales pour l'industrie et la société. Elles permettent de réduire drastiquement le coût des essais et donc le coût de dévellopement des technologies de demain, où un des enjeux majeur est désormais leur impact environnemental. »

A. Cassagne, Doctorant en informatique.

« Passionné par le dévelopement informatique, j'ai intégré cette filière par curiosité pour le monde du parallélisme. Au final, je suis pleinement satisfait par cette passionnante formation où j'ai énormément appris. Alors que je me dirigeais plutôt vers du génie logiciel avec des langages de haut niveau, j'ai complètement revu mes projets professionnels pour me tourner vers des problématiques de recherche liées à l'optimisation de code. »


Programme des études


  • Ce cours présente les différents langages de parallélisme utilisés aujourd’hui pour paralléliser les applications de simulation. Le cours sera découpé en trois parties. Les deux premières parties présenteront le modèle Massage Passing Interface et OpenMP. La troisième partie étudiera la programmation hybride MPI+X

  • De nombreux supercalculateurs se reposent aujourd'hui sur des accélérateurs de calcul, tels que des cartes graphiques (GPU). L'objectif de ce cours sera d'une part de présenter l'architecture de ces accélérateurs, et d'autre part d'apprendre à les programmer efficacement à l'aide de langages specifiques (CUDA, OpenCL), d'annotations de code (OpenMP, OpenACC), de bibliothèques optimisées (CUBLAS, Thrust, …). Des TPs seront consacrés à l'écriture, au debug, et à l'optimisation de code accéléré sur GPU à l'aide de ces différents paradigmes.

  • Le domain du HPC repose essentiellement sur l'utilisation de large supercalculateurs qui reposent sur des environnements qui leur sont spécifiques pour permettre un artage des ressources. Le cours présentera dans un premiers temps le cluster utilisé par la formation ainsi que les outils de gestions de modules et de soumissions de jobs qui seront à disposition pour la formation. Dans un deuxième temps, le cours présentera les outils d'analyse de performance utilisés par les codes de HPC sur ces plate-forme afin d'en optimiser l'utilisation. Les outils présentés seront utilisés en compléments des autres cours de la formation.

    • La démocratisation des machines parallèles a rendu critique la bonne gestion des moyens de calculs. Processeurs, mémoire, bande passante, énergie... Le but de ce cours est de discuter les moyens algorithmiques d'attribution des ressources pour les différentes applications s'exécutant sur ces plateformes. Parmi les sujets discutés, nous présenterons la manière d'analyser et résoudre algorithmiquement ce type de problèmes. Nous parlerons d'ordonnancement de ressources avec et sans contraintes. Nous parlerons d'hétérogénéité et de hiérarchie mémoire et d'équilibrage de charges.

    • Dans ce cours nous aborderons différentes techniques d’apprentissage statistique. Plus précisément nous nous intéresserons à l'apprentissage non supervisé avec les méthodes d’analyse en composantes principales et de partitionnement et à l'apprentissage supervisé avec les méthodes de régression et de classification. Ces méthodes seront mises en oeuvre lors de 2 séances de TP avec le langage de programmation R. Ensuite, des mini projets vous seront proposés.

    • L'objectif du cours est de parcourir les méthodes de résolution de problèmes d'algèbre linéaire dense dans un contexte de calcul haute performance. On s'intérressera particulièrement à la (re)formulation de ces algorithmes dans un contexte parallèle permettant une mise en relation avec les cours d'ordonnancement et d'équilibrage de charges, mais également dans le contexte de modèles de programmation avancés. Systèmes linéaires (Factorisations triangulaires (Cholesky, LU, …), Résolution de systèmes triangulaires, Utilisation de bases orthogonales (QR)), Décomposition en valeurs singulières/propres, Introduction aux tenseurs

  • La visualisation scientifique située à l’interface entre l’informatique scientifique et les mathématiques appliquées est désormais un outil de communication, de compréhension et d’analyse de résultats rendu incontournable pour l’analyse de grands volume de données. L’objectif de ce cours est de présenter les enjeux, les principes et des solutions logicielles de visualisation scientifique. Les points suivants seront abordés : format des données, pipeline de visualisation, algorithme d’extraction d’information, technique d’exploitation in-situ … Les TD et TP s’intéresseront à l’utilisation de bibliothèques et aux développements d’outils permettant de créer ses propres logiciels d’analyse et de visualisation 3D. Les technologies utilisées seront notamment Python, C++, VTK, VisIt, Paraview.

    • Introduction à la problématique BigData : Notion d’ordre de grandeur, Enjeux scientifiques/sociétaux/économiques, Problèmes
    • Notion de base sur le fonctionnement d’un système distribué à grande échelle : Introduction à l’éco-système hadoop, Notion élémentaire administration hadoop
    • Introduction sur les systèmes de fichiers distribués : HDFS : principe fonctionnement, Utilisation du client HDFS, Introduction au framework JAVA de programmation pour la manipulation de HDFS
    • Introduction au paradigme de programmation Map/Reduce : Principes élementaires, Mise en place avec Hadoop/HDFS, Introduction au framework Java de programmation MapReduce Hadoop2.
    • Introduction au “design pattern” Map/Reduce : Filtration, Summarization, Organization, Jointure
    • Introduction au BigTable (nosql) : Démistification des BigTable, Introduction au Big Table de Hadoop HBASE, Présentation du framework de programmation Java pour HBASE.

  • Outils pour l'apprentissage (EI9IS324)
  • Traitement informatique de la musique (EI9IS330)
  • Programmation 3D (EI9IT386)

  • ...

  • ...

  • ...

  • EC9CE302 Projet Professionnel : niveau 3
  • EC9CE320 Soutenance de projet professionnel
  • EC9CE321 Challenge entreprise
  • EC9LC301 LV1 Anglais S9


Davantage d'informations sur le Syllabus : cliquez ici.


Contacts


Secrétariat pédagogique : Sandrine Truffier, ‭05 56 84 23 34‬.

Responsables : Mathieu Faverge, Raymond Namyst.