Évaluation d'applications parallèles sur des systèmes multi-coeurs

Par Cédric Taschereau et Francis Corriveau

L’objectif de notre projet était de déterminer les gains de performance qu’apporterait la parallélisation d’applications sur un ordinateur multicœur.

Afin d’avoir des applications qui seraient simplement parallélisables et qui produiraient des résultats facilement mesurables, nous avons décidé de produire différents algorithmes de tri. Par contre, nous avons rapidement découvert qu’un tri d’un million d’entiers s’exécutait en moins d’une seconde. Afin de remédier à ce problème, nous avons construit une nouvelle classe d’entier qui calcule pi avec 70 décimales de précision pour ralentir la méthode de comparaison d’entier.

La méthode que nous avons utilisée afin de paralléliser nos algorithmes de tri fusion et de tri rapide était simplement de diviser le tableau d’éléments à trier en deux sous-tableaux. Ces sous-tableaux étaient ensuite passés en paramètre à deux nouveaux fils d’exécution. Un paramètre additionnel permettait également de déterminer combien de fois cette séparation aurait lieu. Les deux sous-tableaux étaient finalement fusionnés lors de la fin des deux fils d’exécution.


Documentation complète du projet

Programmes testés