begin process at 2010 02 10 10:53:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths et Algorithmes

 > MANDELBROT MULTI-PROCESSUS

MANDELBROT MULTI-PROCESSUS


 Information sur la source

Note :
Aucune note
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 302 / 174

Auteur : jojolemariole

Ecrire un message privé
Site perso
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

Les Membres Club peuvent 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

 Sources du même auteur

Source avec Zip Source avec une capture ANIMATION DE TRI AVEC BRAS ROBOTISÉ
Source avec Zip Source avec une capture SIMPLE TETRIS FLUIDE
Source avec Zip Source avec une capture GENERATEUR D'ASCII ART

 Sources de la même categorie

Source avec Zip CLASSE MATRICE par frankladen11
Source avec Zip Source avec une capture RÉSOLUTION D'ÉQUATION GRÂCE AU CALCUL DES DÉTERMINANTS par frankladen11
Source avec Zip TYPE DE DONNÉES ABSTRAIT GRAPHE par smutsonberg
Source avec Zip Source avec une capture SIMPLEXE ET DUAL par MrRenaud
Source avec Zip ALGORITHME DE BELLMAN, CALCUL DES TEMPS AU PLUS TÔT ET RECHE... par michaelcourcy2005

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SERVEUR ACCESS par jantelboy
Source avec Zip Source avec une capture AQUARIUM 2D AVEC DOUBLE-BUFFERING ET EN UTILISANT UNIQUEMENT... par Cornellus1985
Source avec Zip Source avec une capture BIBLIOTHÉQUE DE FRACTALS par mimi5644
Source avec Zip Source avec une capture FRACTAL MANDELBROT/JULIA par kperez
Source avec Zip Source avec une capture FRACTALE DE MENDELBROT EN COULEURS par nehmain

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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales