Problème multithreading

[Résolu]
Signaler
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
-
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
-
Salut,

Depuis quelques temps je m'amuse à refaire tous mes programmes avec plusieurs processus avec un gain évident.
Aujourd'hui c'est une application dessinant une fractale que j'ai multithreadé. L'image est découpée en plusieurs zones (alternativement horizontalement et verticalement) et chaque zone est confiée à un thread.

Résultats sur un PIV monocore @3.4Ghz avec Hyper Threading:
<hr size="2" width="100%" />
1 thread(s) : 413ms (moyenne)
2 thread(s) : 343ms (moyenne)
4 thread(s) : 331ms (moyenne)
8 thread(s) : 334ms (moyenne)
16 thread(s) : 327ms (moyenne)
32 thread(s) : 357ms (moyenne)
64 thread(s) : 351ms (moyenne)
128 thread(s) : 385ms (moyenne)

Résultats sur un Core 2 Duo e6300 :
<hr size="2" width="100%" />
1 thread(s) : 417ms (moyenne)
2 thread(s) : 268ms (moyenne)
4 thread(s) : 228ms (moyenne)
8 thread(s) : 226ms (moyenne)
16 thread(s) : 229ms (moyenne)
32 thread(s) : 233ms (moyenne)
64 thread(s) : 231ms (moyenne)

Donc comme vous pouvez le voir, c'est plutôt concluant. Sauf que très souvent, ça plante au milieu du calcul. Sans consommer de processeur, comme s'il y avait un interblocage.
J'ai essayé de rajouter des affichages, mais quand je fais ça, il n'y a plus de plantage : comme si les interruptions d'écriture sur la console permettaient d'éviter le bug. Je ne sais pas si quelqu'un a déjà rencontré ce genre de problème, si c'est le cas avez-vous une piste?

Merci.

1 réponse

Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
25
Problème résolu jusqu'à nouvel ordre. J'ai rajouté un synchronized sur une méthode et ça a résolu mon problème. Je mettrai le source sans tarder une fois que j'aurai une interface potable.