HPDA curriculum
The HPDA track is a two-years program with mandatory courses on core topics (operating systems, parallel programming), and optional courses that target either HPC applications (numerical simulation and modeling, …) or AI applications (Machine learning, data mining, …) In addition to a few mandatory courses, students are free to select courses based on their prefered topics.
Since the courses are provided by several schools (Ecole Polytechnique, ENSTA, Télécom Paris, and Télécom SudParis) whose teaching periods may differ, we advise students to choose courses from Polytechnique during M1, and courses from ENSTA, Télécom Paris, or Télécom SudParis during M2.
M1 courses
Master 1 schedule is based on Polytechnique's Master 1 HPC. Students have to choose 60 ECTS among the following courses.
- First Period (september-december)
- Mandatory courses
- Warning: Invalid ModuleId INF553
- Warning: Invalid ModuleId INF559
- M1 HPDA Project: M1 HPDA research projects (20 ECTS)
Web page: ?page=../common/research-projects-2023-2024
During the master, a student will learn research by doing research. During the two years of the master, a student will thus spend between one or two days each week in a research group in order to do research projects with professors and PhD students of IP Paris.
- M1 Seminar: M1 Seminar (2.5 ECTS)
Web page: https://www.inf.telecom-sudparis.eu/pds/seminars/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=M1 SeminarThe seminar consists in presentations of ongoing research works, both by students on papers of conferences or journals, and by professors from IP Paris and other universities.
-
FLE1: French courses for foreign students (M1/S1) (Nicoline Lagel, 2,5 ECTS)(for foreign students who do not have a B2 proficiency certificate)
- Non-mandatory courses
- Warning: Invalid ModuleId INF552
- Warning: Invalid ModuleId INF554
- Warning: Invalid ModuleId INF571
- MAP553: Foundation of Machine Learning (Erwan Le Pennec, 5 ECTS)
Web page: https://moodle.polytechnique.fr/course/info.php?name=MAP553-2022
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=MAP553Machine learning is a scientific discipline that is concerned with the design and development of algorithms that allow computers to learn from data. A major focus of machine learning is to automatically learn complex patterns and to make intelligent decisions based on them.
This course focuses on the methodology underlying supervised and unsupervised learning, with a particular emphasis on the mathematical formulation of algorithms, and the way they can be implemented and used in practice. We will therefore describe some necessary tools from optimization theory, and explain how to use them for machine learning. A glimpse about theoretical guarantees, such as upper bounds on the generalization error, are provided during the last lecture.
The methodology will be the main concern of the lectures while some proofs will be done during the PCs. Practice will be done through a challenge.
- Second period (january-march)
- Mandatory courses:
- Warning: Invalid ModuleId INF560
- Warning: Invalid ModuleId INF583
- M1 HPDA Project: M1 HPDA research projects (20 ECTS)
Web page: ?page=../common/research-projects-2023-2024
During the master, a student will learn research by doing research. During the two years of the master, a student will thus spend between one or two days each week in a research group in order to do research projects with professors and PhD students of IP Paris.
- M1 Seminar: M1 Seminar (2.5 ECTS)
Web page: https://www.inf.telecom-sudparis.eu/pds/seminars/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=M1 SeminarThe seminar consists in presentations of ongoing research works, both by students on papers of conferences or journals, and by professors from IP Paris and other universities.
- FLE2: French courses for foreign students (M1/S2) (Nicoline Lagel) (for foreign students who do not have a B2 proficiency certificate)
- Non-mandatory courses:
- Warning: Invalid ModuleId INF564
- MAP584: Effective implementation of the finite element method (François Alouges, Aline Lefebvre and Flore Nabet, 5 ECTS)
- MAP583: Apprentissage profond de la théorie à la pratique (Andreï Bursuc and Marc Lelarge, 5 ECTS)
Web page: https://moodle.polytechnique.fr/course/info.php?name=MAP583-2022
Recent developments in neural network approaches (more known now as “deep learning”) have dramatically changed the landscape of several research fields such as image classification, object detection, speech recognition, machine translation, self-driving cars and many more. Due its promise of leveraging large (sometimes even small) amounts of data in an end-to-end manner, i.e. train a model to extract features by itself and to learn from them, deep learning is increasingly appealing to other fields as well: medicine, time series analysis, biology, simulation...
This course is a deep dive into practical details of deep learning architectures, in which we attempt to demystify deep learning and kick start you into using it in your own field of interest. During this course, you will gain a better understanding of the basis of deep learning and get familiar with its applications. We will show how to set up, train, debug and visualize your own neural network. Along the way, we will be providing practical engineering tricks for training or adapting neural networks to new tasks.
By the end of this class, you will have an overview on the deep learning landscape and its applications to traditional fields, but also some ideas for applying it to new ones. You should also be able to train a multi-million parameter deep neural network by yourself. For the implementations we will be using the Pytorch library in Python.
- NET7212: Safe System Programming (Stefano Zacchiroli and Samuel Tardieu, 5 ECTS)
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=NET7212
Description
In this cours you will learn how to build system-level applications that avoid by construction memory safety issues and data race issues, by relying on modern type systems. You will be introduced to Rust as an example of a programming language that realizes this approach and has significant industry adoption.
Syllabus
- Memory safety
- How to detect memory-safety issues in C/C++
- The Rust memory model
- NULL references and how to avoid "billion dollar mistakes"
- Rust language basics
- Race conditions
- Avoiding multiprocessing (security) pitfalls
- Data races
- Avoiding multithreading (security) pitfalls
Meta
- Site: https://ssp-rs.telecom-paris.fr/
- Field: System programming and Software security
- Keywords: programming, security, statictyping, memorysafety, multiprocessing, multithreading, rust
- Evaluation: exam + project
- Prerequisites:
- operating systems foundamentals
- C programming (C++ would be a plus)
- POSIX programming
- some experience with multithreading/multiprocessing programming
- Third period (april-june)
- Mandatory courses:
- CSC4508: Operating systems (François Trahay and Gaël Thomas, 5 ECTS)
Web page: http://www-inf.telecom-sudparis.eu/COURS/CSC4508/Supports/index_ipparis.php
This course presents the design principles of modern operating systems. In this course you will learn:
- how applications interact with the operating system and how the operating system interacts with the hardware
- the main internal mechanisms of an operating system (memory manager, I/O subsystem, scheduler)
- how these mechanisms are implemented in a real operating system through the study of the XV6 operating system
- how to develop parallel applications and parallel operating systems with threads
- M1 HPDA Project: M1 HPDA research projects (20 ECTS)
Web page: ?page=../common/research-projects-2023-2024
During the master, a student will learn research by doing research. During the two years of the master, a student will thus spend between one or two days each week in a research group in order to do research projects with professors and PhD students of IP Paris.
- M1 Seminar: M1 Seminar (2.5 ECTS)
Web page: https://www.inf.telecom-sudparis.eu/pds/seminars/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=M1 SeminarThe seminar consists in presentations of ongoing research works, both by students on papers of conferences or journals, and by professors from IP Paris and other universities.
Additionally, students can pick courses (up to 7.5 ECTS) from other master track (such as master PDS, or master DataIA)
M2 courses
Master 2 schedule uses mostly courses from ENSTA, Télécom Paris, and Télécom SudParis. Students can also choose courses from Polytechnique, but since the periods dates are different, scheduling conflicts may appear.
Students have to choose 30 ECTS among the following courses. The Master 2 programs ends with a 6-months research internship.
- First period (september-october)
- Mandatory courses
-
CSC5001: High performance runtimes (Élisabeth Brunet, François Trahay and Gaël Thomas, 5 ECTS)or
Web page: http://www-inf.telecom-sudparis.eu/COURS/CSC5001/new_site/Supports/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=CSC5001With the advent of multicore processors (and now many-core processors with several dozens of execution units), expressing parallelism is mandatory to enable high performance on different kinds of applications (scientific computing, big-data...). In this context, this course details multiple parallel programming paradigms to help exploiting such a large number of cores on different target architectures (regular CPUs and GPUs). The course introduces distributed-memory model (MPI), shared-memory model (OpenMP) and heterogeneous model (CUDA). All these approaches would allow leveraging the performance of differents computers (from small servers to large supercomputers listed in Top500).
AMS301: Parallel Scientific Computing (Axel Modave, 5 ECTS)(unless INF560 was taken during M1)Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=AMS301
Nowadays, parallel scientific computing is an essential tool for academia and industry to solve a large range of engineering applications. This course deals with the efficient parallel solution of structured and unstructured problems (to solve e.g. PDE problems discretized with finite differences or finite elements). In particular, we focus on parallel computing with distributed memory. The theoretical part of this course is composed of two topics: parallel algorithms for solving structured and unstructured mathematical problems; solution of large linear systems (direct/iterative methods, conjugate gradient method, Krylov methods, GMRES, preconditioning, domain decomposition).
- M2 HPDA Project: M2 HPDA research projects (12,5 ECTS)
Web page: ?page=../common/research-projects-2023-2024
During the master, a student will learn research by doing research. During the two years of the master, a student will thus spend between one or two days each week in a research group in order to do research projects with professors and PhD students of IP Paris.
- M2 Seminar: M2 Seminar (2,5 ECTS)
Web page: https://www.inf.telecom-sudparis.eu/pds/seminars/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=M2 SeminarThe seminar consists in presentations of ongoing research works, both by students on papers of conferences or journals, and by professors from IP Paris and other universities.
-
FLE3: French courses for foreign students (M2/S1) (Nicoline Lagel)(for foreign students who do not have a B2 proficiency certificate)
- Non-mandatory courses
- CSC5101: Advanced programming of multi-core architectures (Gaël Thomas, 5 ECTS)
Web page: http://www-inf.telecom-sudparis.eu/COURS/chps/paam/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=CSC5101This course presents advanced programming techniques for multi-core architectures: lock-free algorithms, transactional memory, virtualization techniques or techniques to mitigate non-uniform memory architectures. This module presents the theoretical concepts underlying these systems and their practical implementation.
- CSC7239: Architecture for big data (Ioana Manolescu, 2,5 ECTS)
Mediator systems, P2P systems, structured data management in massively parallel settings
- CSC7256: Big Data Processing (Louis Jachiet, 2,5 ECTS)
This module will present the basis of architectures and algorithms for bigdata processing at a very large scale. It covers Map Reduce Apache Spark, Lambda and Kappa Architectures.
- Warning: Invalid ModuleId SD201
- ROB306: Accélérateurs matériels et programmation (Omar Hammami, 2,5 ECTS)
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=ROB306
Les objectifs de ce cours sont doubles: 1. maitriser les techniques de modélisation de circuits numériques à base de langage de description matériel de haut niveau (C/C++/SystemC) ainsi que les flots de transformation en un circuit physique 2. maitriser les technologies de circuits numériques reprogrammables de type FPGA. Ces circuits qui connaissant un essor spectaculaire ces dernières années sont très largement utilisés dans les applications embarquées en particulier pour leur capacité a accélerer les calculs. Ces deux points réunis permettront la conception et l'implémentation de circuits pour fonctionnalités multiples sur composants reprogrammables. Les circuits FPGA sont aussi fortement utilisés en vérification de systèmes électroniques par émulation.
- Second period (november-february)
- Mandatory courses
- M2 HPDA Project: M2 HPDA research projects (12,5 ECTS)
Web page: ?page=../common/research-projects-2023-2024
During the master, a student will learn research by doing research. During the two years of the master, a student will thus spend between one or two days each week in a research group in order to do research projects with professors and PhD students of IP Paris.
- M2 Seminar: M2 Seminar (2,5 ECTS)
Web page: https://www.inf.telecom-sudparis.eu/pds/seminars/
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=M2 SeminarThe seminar consists in presentations of ongoing research works, both by students on papers of conferences or journals, and by professors from IP Paris and other universities.
- Non-mandatory courses
- CSC5004: Cloud infrastructures (Pierre Sutra and Mathieu Bacou, 5 ECTS)
Web page: https://github.com/otrack/cloud-computing-infrastructures
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=CSC5004This course presents cloud infrastructures in order to:
- acquire an overview of Cloud computing (e.g., data centers, everything-as-a-service, on-demand computing, cloud economy model)
- apprehend the fundamental notions in Cloud computing (e.g., fault-tolerance, elasticity, scalability, load balancing)
- understand how virtualization works (VM, container)
- deconstruct and classify a distributed data store
- recognize data consistency problems and know common solutions
In details, a student will learn how to:
- deploy and maintain IaaS
- construct base data storage services (e.g., key-value store, coordination kernels)
- construct and deploy a micro-service architecture
- think for dependability & scalability
- IA317: Large scale machine learning (Thomas Bonald, 2,5 ECTS)
On considère la problématique du passage à l'échelle en machine learning. Il s'agit de comprendre et d'apprendre à implémenter les principales approches permettant de résoudre numériquement des problème d'apprentissage statistique supervisé. Plusieurs angles seront abordé : réduction de la dimension et sélection des features, utilisation d'algorithmes d'optimisation adaptés, et utilisation d'outils informatiques distribués permettant de porter les calculs sur un cluster.
- IA307-master: Advanced GPU programming (Goran Frehse and Élisabeth Brunet, 2,5 ECTS)
Web page: https://sites.google.com/site/frehseg/teaching/ia307
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=IA307-masterThe aim of this course is to give a vision of algorithms and their implementations in modern machine learning libraries on neural networks. In particular, the use of specific hardware, such as graphics cards, to improve performance is at the heart of these libraries. It is important to understand how the calculations are shared between the hardware and the CPU.
- AMS-X02: Advanced numerical methods and high-performance computing for simulating complex phenomena (Marc Massot, 5 ECTS)
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=AMS-X02
Dans un nombre croissant d'applications, scientifiques ou industrielles, la simulation numérique joue un rôle clef pour comprendre et analyser les phénomènes physiques complexes. Elle permet aussi de prédire le fonctionnement de dispositifs comme les chambres de combustion aéronautiques dans l'optique d'une conception avancée. La complexité des systèmes et la taille des simulations multi-dimensionnelles rendent l'utilisation du calcul haute performance nécessaire. Ce cours propose dans un premier temps une présentation des enjeux que pose la modélisation des systèmes complexes pour les méthodes numériques et la simulation et un état de l'art des nouvelles architectures de calcul et des modèles de programmation parallèle. Après avoir rappelé les bases de l'analyse numérique des EDP pour les problèmes multi-échelles, nous proposons d'explorer quelques méthodes numériques avancées conçues pour traiter la raideur présente dans ces modèles complexes tout en tirant le meilleur parti des nouvelles architectures de calcul. Ces méthodes s'appuient sur une combinaison efficace entre analyse numérique, modélisation et calcul scientifique. Des séances de mise en oeuvre sur machines en lien avec un mésocentre de calcul seront proposées.Contenu:- Modélisation mathématique des systèmes complexes multi-échelles.
- Définition de la notion de calcul haute performance et synthèse sur les nouvelles architectures de calcul et modèles de programmation parallèle.
- Analyse numérique des EDP multi-échelles (Décomposition de domaine, séparation d'opérateur...).
- Présentation et analyse de méthodes numériques avancées (multi-résolution adaptative et séparation d'opérateur avec adaptation temps/espace, algorithme pararéel, méthodes préservant l'asymptotique,...).
- TP sur machine parallèle avec fourniture de codes de calcul à titre d'exemple pour chaque méthode.
- ROB307: MPSOC Multiprocesseurs sur puce (Omar Hammami, 2,5 ECTS)
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=ROB307
La conception de systèmes embarqués génère des systèmes complets comprenant des parties logicielles et matérielles indissociables et concues conjointement. Les systèmes résultants sont de manière quasi systématique amenés a résider sur une seule puce d'ou leurs appellation de systèmes sur puce. Les méthodologies de conception de Systèmes sur Puce (SOC - System on Chip) sont un outil indispensable pour un ingénieur amène a concevoir un système embarqué pour déterminer les possibilités offertes par la technologie pour réaliser le système étudié sous les contraintes spécifiés. Le cours introduit les méthodologies de conception de SOC et leurs applications dans des exemples industriels avec une focalisation sur les MPSOC (Multiprocessors System on Chip) et les NOCs (Network on Chip).
- NET7212: Safe System Programming (Stefano Zacchiroli and Samuel Tardieu, 5 ECTS)
Calendar: https://cs.ip-paris.fr/courses/tracks/hpda/?page=curriculum&genics=NET7212
Description
In this cours you will learn how to build system-level applications that avoid by construction memory safety issues and data race issues, by relying on modern type systems. You will be introduced to Rust as an example of a programming language that realizes this approach and has significant industry adoption.
Syllabus
- Memory safety
- How to detect memory-safety issues in C/C++
- The Rust memory model
- NULL references and how to avoid "billion dollar mistakes"
- Rust language basics
- Race conditions
- Avoiding multiprocessing (security) pitfalls
- Data races
- Avoiding multithreading (security) pitfalls
Meta
- Site: https://ssp-rs.telecom-paris.fr/
- Field: System programming and Software security
- Keywords: programming, security, statictyping, memorysafety, multiprocessing, multithreading, rust
- Evaluation: exam + project
- Prerequisites:
- operating systems foundamentals
- C programming (C++ would be a plus)
- POSIX programming
- some experience with multithreading/multiprocessing programming
- Third period (March-august)
- Mandatory courses
- Internship: 6-month M2 research internship (30 ECTS)