La programmation parallèle a connu une évolution remarquable, marquée par des réussites notables, telles que la résolution de nombreux problèmes informatiques majeurs des années 1980, ainsi que des revers, notamment le déclin de nombreux fournisseurs d'ordinateurs parallèles. Dans le paysage contemporain, la programmation parallèle est devenue omniprésente, couvrant une gamme diversifiée de plates-formes informatiques.
Ce cours vise à offrir une exploration approfondie et accessible des algorithmes parallèles, englobant des sujets tels que les architectures parallèles, les modèles théoriques de calcul parallèle, la conception d'algorithmes parallèles, ainsi que l'analyse de la complexité et des performances. Ce cours présente également une introduction au développement de programmes parallèles, en se concentrant sur MPI (Message Passing Interface), qui est l'une des interfaces de programmation d'applications (API) les plus utilisées pour la programmation parallèle.