Mandelbrot multi-processus

Soyez le premier à donner votre avis sur cette source.

Vue 6 429 fois - Téléchargée 506 fois

Description

J'espère que l'idée vous plaira, il s'agit de la fractale de Mandelbrot. Un grand nombre d'applets la dessinent mais l'originalité repose ici sur la gestion de plusieurs threads.
Au lieu d'utiliser un pool de threads j'ai préféré créer un objet FractalPainter implémenté par :

- les ChiefFractalPainter qui ne dessinent rien du tout mais délèguent à deux autres FractalWorker
- les WorkerFractalPainter qui dessinent une partie de la fractale

Lorsque l'on demande à un ChiefFractalPainter de dessiner une partie de fractale, il coupe cette partie en 2 et la donne chacune des parties à ses 2 workers attitrés, en fin de compte, il ne fait pas grand chose. (Je me suis inspiré de la hiérarchie habituelle dans un bureau, lol ;)

Si on choisit de dessiner en //, chaque WorkerFractalPainter se créera un petit thread à lui pour faire le boulot.

Source / Exemple :


In the zip.

Conclusion :


Je n'ai pas vraiment pu tester le gain de performance, car chez moi je n'ai qu'un seul coeur sans hyper threading. (A64 3200+)
Mais j'attends vos remarques à ce sujet.
29/05/08 : tests relativement concluants sur un pentium dual core e4600, parfois peu de gain si la complexité de la fractale est mal répartie

Je vais sans doute améliorer un peu la conception de l'IHM qui est un peu rafistolée de ci de là, en revanche je pense que les FractalPainter sont bien foutus.
Animations rajoutées.
Reste à multithreader le rendu.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.