Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2834 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  [algo - tris par tas] le parallèliser

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[algo - tris par tas] le parallèliser

n°360633
farib
Posté le 14-04-2003 à 16:38:55  profilanswer
 

(c'est une question pour un rappor de tp, y'a pas de code a écrire, juste des idées)
 
je travaille avec des arbres binaires presque parfaits ( comme ca on travaille sur des tableaux)
 
 
 
 


    1
   / \
  2   3
 / \  /
4  5 6
 
en tablo ca donne  
123456  


arbre applati dans 1 tableau)
 
je construis mon tas en parcourant les noeuds linéairement en partant du bas, de droite a gauche (dans le cas ou la racine serait en haut)  et en rétablissant l'arbre a chaque fois ( c'est a dire que l'on a tjrs un arbre en dessous du noeud, et pas encore forcément au dessus)
 


    6
   / \
  5   4
 / \  /
3  2 1  


(ordre de parcours de l'arbre, qui est en fait applati dans un tableau)
 
la ca me fait mon arbre presque parfait, puis je peux trier en prenant mon plus grand élément et en rétablissant l'arbre
 
bref juste la rien de nouvo
 
mais...
 
dans le cas d'une machine multiprocesseur, quel serait le meilleur moyen de paralleliser le tri et avec combien de procs ?
 
moi je pense "simplement" que l'on peut y gagner dans la construction initiale de l'arbre binaire presque parfait = tas  
donc fatalement donnant pour un noeud chacune des deux branches à un processeur  
 
donc soit on est pauvre et on parallelise uniquement les deux fils de la racine avec 2 procs
 
soit on est mégalo et on parallelise toute la derniere rangée de noeuds soit a peu pres log(2) N processeurs, si N est la taille de l'arbre / tableau a trier
 
 
 
 
voila, si vous aves des idées pour completer les miennes.... :hello:


Message édité par farib le 14-04-2003 à 16:41:37

---------------
Bitcoin, Magical Thinking, and Political Ideology
mood
Publicité
Posté le 14-04-2003 à 16:38:55  profilanswer
 

n°361043
bjone
Insert booze to continue
Posté le 14-04-2003 à 23:24:11  profilanswer
 

bah l'idée pour rentabiliser c'est que chaque cpu soit chargé pour à peu près la même durée, donc à priori oui si l'arbre est équilibré, dans la mesure ou on a du bi proc faire faire le parcours à partir de chaque fils de la racine...
 
mais attention, pour que ce soit rentable, comme ça sa marche, mais si jamais tu prends une autre approche, il ne faut pas que les N cpu mettent à jour le tableau de manière entrelacée, sinon il va y avoir du trashing de mémoire cache...
 
admettons que ton tableau final fasse 1 mo, dans le cas d'un bi-proc et ta solution des 2 fils, chaque cpu à peu près mettre à jour 512 ko.
 
mais si tu prends une autre approche et que chaque cpu tape dans une zone en mémoire cache de l'autre, tu seras plus lent qu'en mono-cpu.

n°361048
farib
Posté le 14-04-2003 à 23:27:30  profilanswer
 

en fait la je me disais : on peut essayer de touver un compromis avevc plsu de 2 cpus, mais a chaque fois  on ne pourrait avoir tous les cpus qui tournent en même temps, 2 c le minimum, utilisé a 100%, mais on "pourrait" faire avec 16 procos, sachant que lorsque l'on travaille sur des noeuds supérieure a la couche 4 (16=2^4) et bien on aurait des cpus qui feraient dodo


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°361341
farib
Posté le 15-04-2003 à 10:44:58  profilanswer
 
n°365784
farib
Posté le 18-04-2003 à 00:00:09  profilanswer
 
n°366020
BifaceMcLe​OD
The HighGlandeur
Posté le 18-04-2003 à 10:27:33  profilanswer
 

On peut aussi répondre à la demande, en créant un pool de n threads où n correspond au nombre de tes processeurs.
 
Chacun de ces threads écoute le thread principal qui va leur donner des ordres (trie, ceci, trie cela). Lorsqu'ils ont fini, ils informent le thread principal de leur inactivité, et ce dernier pourra les "réactiver" en leur affectant une nouvelle tâche.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  [algo - tris par tas] le parallèliser

 

Sujets relatifs
L'algo du plus court chemin en C[JS] algo de compression, zip ou autre
[Algo] Info sur le Dominating Set ou Ensemble DominantsBesoin d'aide pour un pb d'algo !! siouplé...
[Algo]Recherche du plus court chemin[ASM , ALGO]Extraire des données d'une disquette
[C] Vous voyez une erreur d'algo dans ce programme de calcul en // ?[ALGO]parcours total d'un tableau en 3d [update projet fini]
[algo avec alg'exec] j'ai besoin d'aide sur les fonctions et procédure[algo avec soft alg'exec] quelqu'un maitrise les algo avec alg'exec
Plus de sujets relatifs à : [algo - tris par tas] le parallèliser


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR