Vous êtes sur la page 1sur 2

TP2 : MPI

Merge split sort


Bram De Wa hter

23 février 2005

1 Merge split sort


Le merge split sort est un algorithme de tri distribué ee tué par p pro essus
numérotés de 0 à p − 1. Partant d'un ve teur non trié, elui- i est partitionné
en p sous ve teurs. Pour simplier, nous supposons que es sous ve teurs sont
de même taille m. Le i-ième sous-ve teur est attribué au i − 1-ième pro essus. La
première hose faite par un pro essus est de trier son ve teur. Ensuite, les pro essus
ee tuent le traitement suivant :
1 Les pro essus pairs envoient leur ve teur au pro essus suivant ( .à.d. le pro-
essus p envoit sont ve teur au pro essus p + 1 1 ).
2 les pro essus impairs re oivent e ve teur, le merge ave le leur, puis le ren-
voie.
3 Les pro essus impairs envoient leur ve teur au pro essus suivant.
4 les pro essus pairs re oivent e ve teur, le merge ave le leur, puis le renvoie.
Merger le ve teur v1 ave v2 onsiste à trier la on aténation v1 · v2 . Ce ve teur
devient alors v1′ · v2′ .

La on aténation des sous-ve teurs orrespond au ve teur de départ trié après


au maximum ⌈p ÷ 2⌉ itérations du traitement pré édemment dé rit.

2 exer i e
On vous demande d'implanter l'algorithme du merge split sort en utilisant
M P I pour l'envoie de ve teurs entre pro essus. Le nombre de pro essus est déni
au lan ement du programme. Le pro essus dont le rank
est égal à 0 se harge de
générer aléatoirement le ve teur à trier et d'envoyer les sous-ve teurs aux autres
pro essus.

1
si p n'est pas le dernier pro essus !

1
2