Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MANDELBROT MULTI-PROCESSUS


Information sur la source

Catégorie :Maths et Algorithmes Classé sous : Fractale, Mandelbrot, thread, multithreading, julia Niveau : Initié Date de création : 24/05/2008 Date de mise à jour : 01/06/2008 23:38:27 Vu / téléchargé: 2 096 / 152

Note :
Aucune note

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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.



 

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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

29 mai 2008 02:00:28 :
J'ai pas mal modifié le code en séparant le calcul des fractales du rendu des fractales. Pour une question de temps, seul le calcul de la fractale est multithreadé mais sur le même principe, je vais multithreader le rendu. Grâce à cette amélioration de la structure de l'application, j'ai pu facilement rajouter des animations, il n'y en a que deux pour le moment, mais tout reste possible. Il reste pas mal de choses à faire : - améliorer la qualité du code -> au niveau de l'interface, c'est un gros bordel à force de rajouter des composants un peu partout - documenter le code, pour l'instant les commentaires sont minimaux, et il n'y a pas de javadoc ni d'uml ni rien de tout ça. - ajouter le multithreading pour le rendu des fractales - ajouter le dessin de l'évolution d'un point (très joli) - ajouter quelques animations - ajouter une applet - intégrer java webstart - et pourquoi pas, voir si on ne peut pas utiliser la puissance colossale du GPU pour ce genre de calculs répétitifs
29 mai 2008 02:02:58 :
J'ai pas mal modifié le code en séparant le calcul des fractales du rendu des fractales. Pour une question de temps, seul le calcul de la fractale est multithreadé mais sur le même principe, je vais multithreader le rendu. Grâce à cette amélioration de la structure de l'application, j'ai pu facilement rajouter des animations, il n'y en a que deux pour le moment, mais tout reste possible. Il reste pas mal de choses à faire : - améliorer la qualité du code -> au niveau de l'interface, c'est un gros bordel à force de rajouter des composants un peu partout - documenter le code, pour l'instant les commentaires sont minimaux, et il n'y a pas de javadoc ni d'uml ni rien de tout ça. - ajouter le multithreading pour le rendu des fractales - ajouter le dessin de l'évolution d'un point (très joli) - ajouter quelques animations - ajouter une applet - intégrer java webstart - et pourquoi pas, voir si on ne peut pas utiliser la puissance colossale du GPU pour ce genre de calculs répétitifs
29 mai 2008 02:07:15 :
hum hum, je me suis planté sur le zip, et le fait de revenir à l'étape précédente après avoir cliqué sur prévisualisation semble conserver la mise à jour prévisualisée...
30 mai 2008 01:10:24 :
J'ai mis en place l'architecture pour le rendu en multithread, mais ça n'est pas encore fonctionnel. On peut sauvegarder et ouvrir des descripteurs de fractales. J'ai aussi réorganisé un peu mes packages. Beaucoup de choses à faire encore,notamment un compteur de FPS pour les animations, une interface console minimaliste... en plus de ce que je voulais déjà faire avant
30 mai 2008 23:39:42 :
Ajout de bundles, pour l'instant que le français, mais avis aux amateurs pour les traductions Ajout d'icônes (les chemins sont paramétrables dans le bundle configuration) Rendering multithreadé suivant le même principe que le computing Ajout d'un panneau de contrôle des animations
31 mai 2008 17:36:30 :
v2.5.0 - Gestion améliorée des bundles, ajout de l'anglais et de l'espagnol. Ajout d'icônes, gestion centralisée des animations avec un peu d'introspection à condition de spécifier dans le fichier configuration.properties le nom des classes d'animation
01 juin 2008 23:38:29 :
2.6.0 : Optimisation du rendu des fractales, calcul du FPS et ajout d'une icône de sablier lors du dessin de la fractale + quelques bricoles

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Problème multithreading [ par jojolemariole ] Salut,Depuis quelques temps je m'amuse à refaire tous mes programmes avec plusieurs processus avec un gain évident.Aujourd'hui c'est une application d Exception in thread "main" java.lang.NullPointerException [ par moooonaaaa ] Salem, j'ai un code en java qui a plusieurs attributs et qui n'ont pas toujours tous des valeurs. dans une méthode j'ai besoin de vérifier si Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException [ par diwa ] bonjour tous le monde, est ce que vous pouvez m'expliquer c quoi cet erreur:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Obtenir la classe qui lance un thread, à partir du thread [ par Hyperpenguin ] Bonjour a tous,Voilà je vous expose mon probleme, j'ai un JDialog que j'ai modifié pour en faire un écran de connexion, l'utilisateur doit rentrer ses ecoute des sms avec J2ME [ par yodakassoum ] Bonjour ,j'écris un programme avec J2ME.J'aimerais ecouter la reception des sms dans un thread qui me permette de déclencher dans mon thread principal Erreur : Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space [ par Noizet ] Hello,Dans mon application je peux faire des recherches, si j'effectue plusieurs recherche à la suite, mon programme plante et me met cette erreur : E les threads en java [ par limalima ] Bonsoir,je débute en java, je suis sur les threads, mon idé est de calculer les carres de i allant de 1 à 10 000,dites moi si j'ai bien compris:comme Probleme Thread et repaint [ par Karibou95 ] Bonjour, J'ai plusieurs questions : Tout d'abord j'ai crée un canvas dans lequel je voudrais faire bouger un point , le probleme c'est que avec repa Repaint me flachouille les yeux O_o [ par Karibou95 ] Bonjour, je réalise un radar à l'aide d'un canvas et de thread ( et aussi à grâce aux personnes de ce forum qui mon beaucoup aidés :)) donc mon rad Exécuter une applcation externe à Java [ par Noizet ] Hello, Je suis entrain de faire un programme qui me permet d'exécuter une application externe à java, j'ai lu des tutoriaux à se sujet, mais je bloque


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,858 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.