Je regarde maintenant ma vieille affectation de l'école et je veux trouver la solution d'une question. P>
Quelle méthode de tri convient le mieux au traitement parallèle? p>
Je suppose que la solution est une solution rapide (ou de la fusion?) est la réponse. P>
suis-je correct? P>
6 Réponses :
Je pense que fusionne la sorte p>
Vous pouvez diviser le jeu de données et faire des opérations parallèles sur elles. P>
Je m'appelle Ufuk Gün, mais en anglais ça sonne drôle :)
Mergesort nécessite la synchronisation entre les threads pour fusionner les résultats de tri. QuickSort n'a pas besoin d'une synchronisation de fil.
Comme le genre de fusion, Quicksort peut également être facilement parallélédisé en raison de sa nature de la division et de la conquête. Les opérations de partition individuelles sur place sont difficiles à paralléliser, mais une fois divisées, différentes sections de la liste peuvent être triées en parallèle. P>
Un avantage de QuickSort parallèle sur d'autres algorithmes de tri parallèle est qu'aucune synchronisation n'est requise. Un nouveau fil est démarré dès qu'un subliste est disponible pour qu'il fonctionne et ne communique pas avec d'autres threads. Lorsque toutes les threades terminées, le tri est effectué. P>
+1: Quicksort ne nécessite pas de synchronisation une fois divisé. Mergesort nécessite la synchronisation de fusionner.
"Un avantage de la parallèle Quicksort sur d'autres algorithmes de tri parallèle est qu'aucune synchronisation n'est requise". Err, non. Vous devez évidemment attendre que les sous-tâches terminent avant de renvoyer la réponse, qui est sychronisation.
Cela dépend complètement de la méthode de parallélisation. Pour l'informatique générale multithread, une sorte de fusion fournit des propriétés assez fiables en équilibrage de la charge et à la localisation de la mémoire. Pour un grand réseau de tri dans le matériel, une forme de trotteuse, biologique ou de coque est réellement meilleure Si vous voulez de bonnes performances O (Log² n). P>
Je pense que la fusion serait la meilleure réponse ici. Étant donné que l'idée de base de la fusion est de diviser le problème en solutions individuelles.solvez-les et de les fusionner. P>
C'est ce que nous faisons aussi en traitement parallèle aussi. Divisez le problème en tout dans les petites instructions de l'unité pour calculer parallien, puis rejoindre les résultats. Merci p>
Il est en train de fusion car le tri est effectué sur deux sous-tableaux et ils sont comparés et triés à la fin. Ceux-ci peuvent être effectués en parallèle p>
Je ne pense pas qu'il soit nécessaire de dupliquer les réponses existantes.
Quelques remarques aléatoires: P>