Accueil > > > MANDELBROT MULTI-PROCESSUS
MANDELBROT MULTI-PROCESSUS
Information sur la source
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
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.
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
Sources du même auteur
Sources de la même categorie
Commentaires et avis
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
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|