Multicore programming

lingi2355  2018-2019  Louvain-la-Neuve

Multicore programming
5 crédits
30.0 h + 15.0 h
Q2
Enseignants
Langue
d'enseignement
Anglais
Thèmes abordés
Ce cours traite d'un sujet avancé spécifique ou d'une sélection des sujets d'intérêt actuellement au niveau de la recherche dans le domaine du génie logiciel.
 
Le sujet (s) peut (peuvent) varier d'année en année, et sera choisi parmi une variété de domaines d'ingénierie logicielle tels que l'informatique de données à forte intensité, l'analyse de logiciels, le développement et l'analyse de grands systèmes évolutifs de logiciels, les techniques liées aux grandes quantités de données, la fouille du code des logiciels , les systèmes de recommandation de logiciels, la visualisation de logiciels, les nouvelles technologies de programmation, les exigences de logiciels et l'analyse logicielle, l'ingénierie logicielle basée sur des modèles, la gestion de la configuration de logiciel, les processus d'ingénierie logicielle, les outils et méthodes de génie logiciel, les tests et la qualité des logiciels, etc.
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

1

Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • INFO1.1
  • INFO3.1
  • INFO6.3

Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • SINF1.M3
  • SINF3.1
  • SINF6.3

Les élèves acquièrent des connaissances théoriques de pointe et des compétences techniques sur les sujets abordés dans le cours.

 

La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».
Contenu
Ce cours aborde la problématique de la programmation passant à l'échelle pour les architecture multi-processeurs et multi-cœurs modernes.

Dans une courte première partie, le cours aborde les éléments de théorie et les modèles de cohérence, et permet la compréhension des enjeux liés à la programmation concurrente en environnement en mémoire partagée. L'emphase est mise sur les aspects liés à la performance et au passage à l'échelle (utilisation de nombreux cœurs).

Le reste du cours passe en revue un ensemble de techniques algorithmiques pour la construction de structures de données concurrentes en mémoire partagée passant à l'échelle, et étudie leurs implications en termes de performance sur les architectures modernes, en prenant en compte la hiérarchie mémoire, les protocoles de cohérence, ou les accès mémoire non uniformes (NUMA).

Le cours est accompagné d'une série de travaux pratiques sur une machine multi-cœurs, au cours desquels les étudiant·e·s évaluent la performance et le coût de divers algorithmes et structures de données concurrents.
Méthodes d'enseignement
  • Courtes présentations
  • Lectures et / ou vidéos à la maison
  • Séances pratiques
Modes d'évaluation
des acquis des étudiants
Modes d'évaluation :
  • Projets (40% de la note finale)
  • Exam (60% de la note finale)
Les projet sont obligatoires et ne peuvent être représentés en deuxième session. Les rapports de projets seront évalués une seule fois avant la première session et ne peuvent être représentés en deuxième session.
Autres infos
Tout le matériel de cours pertinent et les diapositives, ainsi que des informations pratiques relatives au cours seront accessibles sur Moodle, qui sera également le principal moyen de communication entre l'enseignant (s) et les étudiants.
 
Préalables:
  • Introduction à l'algorithmique (LSINF1103)
  • Algorithmique et structures de données (LSINf1121)
  • Computer language Concept (LINGI1131)
  • Informatique 2 (LFSAB1402)
Bibliographie
The Art of Multiprocessor Programming, Maurice Herlihy and Nir Shavit, Morgan Kaufmann. ISBN 978-0-12-370591-4.
UCL library reference 10.620.426
Faculté ou entité
en charge


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] : ingénieur civil en informatique
5

Master [120] en sciences informatiques
5