dernière modification : 2024

Programmation concurrente

Introduction à la programmation concurrente, et application pratique en Python. Ce support de cours s’adresse aux étudiants en informatique.

Le nombre croissant d’applications connectées (informatique mobile, video surveillance, voiture autonome, etc.) et verbeuses (réseaux sociaux), les nouveaux types d’appareillage notamment en biochimie (séquenceurs haut débit) ainsi que l’augmentation de leur interconnexion (IoT) conduisent à une production gigantesque de données, où tout l’enjeu est de pouvoir les stocker et les traiter.

Dans cet univers du big data, les volumes en jeu submergent les capacités de stockage, et les techniques traditionnelles (SGBD relationnels) deviennent inadaptées. Le traitement de ces données nécessitent de nouvelles approches (cloud, NoSQL, systèmes de fichiers distribués), de nouvelles pratiques (amener les traitements près des données) et de nouvelles architectures matérielles (cluster de PC, GPU) pour les traiter. Cette informatique parallèle à haute performance nécessite des algorithmes spécifiques, une autre façon de concevoir le logiciel.

L’objectif de ce cours est de comprendre comment, en considérant un programme comme autre chose qu’une suite d’instructions destinées à être exécutées séquentiellement, il est possible de tirer partie des architectures informatiques actuelles pour réaliser des applications adaptées à cet univers de la donnée.