Summary: | Ce mémoire présente une implantation de la création paresseuse de tâches desti-
née à des systèmes multiprocesseurs à mémoire distribuée. Elle offre un sous-ensemble des fonctionnalités du Message-Passing Interface et permet de paralléliser certains problèmes qui se partitionnent difficilement de manière statique grâce à un système de
partitionnement dynamique et de balancement de charge. Pour ce faire, il se base sur le
langage Multilisp, un dialecte de Scheme orienté vers le traitement parallèle, et implante
sur ce dernier une interface semblable à MPI permettant le calcul distribué multipro-
cessus. Ce système offre un langage beaucoup plus riche et expressif que le C et réduit
considérablement le travail nécessaire au programmeur pour pouvoir développer des
programmes équivalents à ceux en MPI. Enfin, le partitionnement dynamique permet
de concevoir des programmes qui seraient très complexes à réaliser sur MPI. Des tests
ont été effectués sur un système local à 16 processeurs et une grappe à 16 processeurs
et il offre de bonnes accélérations en comparaison à des programmes séquentiels équiva-
lents ainsi que des performances acceptables par rapport à MPI. Ce mémoire démontre
que l’usage des futures comme technique de partitionnement dynamique est faisable sur
des multiprocesseurs à mémoire distribuée. === This master’s thesis presents an implementation of lazy task creation for distributed
memory multiprocessors. It offers a subset of Message-Passing Interface’s functionality
and allows parallelization of some problems that are hard to statically partition thanks
to its dynamic partitionning and load balancing system. It is based on Multilisp, a
Scheme dialect for parallel computing, and implements an MPI like interface on top
of it. It offers a richer and more expressive language than C and simplify the work
needed to developp programs similar to those in MPI. Finally, dynamic partitioning
allows some programs that would be very hard to develop in MPI. Tests were made
on a 16 cpus computer and on a 16 cpus cluster. The system gets good accelerations
when compared to equivalent sequential programs and acceptable performances when
compared to MPI. It shows that it is possible to use futures as a dynamic partitioning
method on distributed memory multiprocessors.
|