Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2582 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Processing gestion multi-coeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Processing gestion multi-coeur

n°2222027
wilfi00
Have you mooed today?
Posté le 10-03-2014 à 18:36:03  profilanswer
 

Bonjour à tous  :hello:  
 
J'utilise le logiciel processing pour un projet ainsi que la librairie Fisica (http://www.ricardmarxer.com/fisica/)
Lorsque j'utilise processing, je vois avec le gestionnaire des taches qu'il utilise un seul coeur (il est donc limité à 25% vu que j'ai 4 coeurs). J'aimerais donc savoir s'il est possible d'utiliser processing sur plusieurs coeurs histoire d'optimiser le truc ?


---------------
The quieter you become, the more you are able to hear
mood
Publicité
Posté le 10-03-2014 à 18:36:03  profilanswer
 

n°2222160
willy le k​id
Posté le 12-03-2014 à 17:37:10  profilanswer
 

Je ne suis pas un spécialiste mais je sais que la seule façon d'utiliser plusieurs core est de faire du multi threading.
Je ne connais pas Processing ni Fisica, je ne sais pas si ils sont compatibles,
mais attention aux problèmes de concurrence, thread-safe et toute la cavalerie des problèmes de données partagées et de thread qui s'attendent.
 
 
Runtime.getRuntime().availableProcessors() permet de voir le nombre de cores vus par la jvm

n°2222183
wilfi00
Have you mooed today?
Posté le 12-03-2014 à 21:55:06  profilanswer
 

J'ai fais une recherche sur google avec "Runtime.getRuntime().availableProcessors()" et je suis tombé sur ça http://forum.processing.org/two/di [...] -system/p1. En gros le gars divise le boulot à faire en taches avec une tache sur chaque coeur (fin si j'ai bien compris).
Je vais essayer de mettre ça dans mon programme, je vous tiens au courant ;)


---------------
The quieter you become, the more you are able to hear
n°2222184
willy le k​id
Posté le 12-03-2014 à 22:17:18  profilanswer
 

Si je regarde les javadocs des dépendances en import
http://docs.oracle.com/javase/7/do [...] lable.html
The Callable interface is similar to Runnable, in that both are designed for classes whose instances are potentially executed by another thread
 
http://docs.oracle.com/javase/7/do [...] cutor.html
An object that executes submitted Runnable tasks
 
je pense que c'est du multi-thread wrappé à la mode java <version récente> ... ça présente bien en tous cas.
Attention, l'auteur demande des conseils pour améliorer l'efficacité, il ne dit pas que son programme fonctionne.


Message édité par willy le kid le 12-03-2014 à 22:23:45
n°2222188
wilfi00
Have you mooed today?
Posté le 12-03-2014 à 23:09:11  profilanswer
 

Est-ce que tu serais capable de m'expliquer son programme ? J'avoue que j'ai un peu de mal à le comprendre  :sweat:  
Sinon j'ai testé son programme, c'est pas optimal mais il fonctionne quand même sur plusieurs coeurs.


---------------
The quieter you become, the more you are able to hear
n°2222191
willy le k​id
Posté le 13-03-2014 à 00:04:52  profilanswer
 

wilfi00 a écrit :

Est-ce que tu serais capable de m'expliquer son programme ?


 
Le gars a 1 million de particules dont il veut calculer les couleurs et je ne sais quoi. Dans un tableau particles[1000000]
Le nombre justifie de paralléliser le travail en tâches.
 
Il calcule availableProcessors donc il connait le nombre de particules par tâche particlesPerTask = 1E6 / availableProcessors;  
 
Enfin, il déclare une liste de tâches : tasks = new ArrayList<Task>(); et y ajoute des Task.
Les Tasks parallélisent le calcul du tableau de particules, chacune sait ou démarrer et ou s'arrêter dans le tableau particles[] grâce aux paramètres du constructeur de Task.
 
Chaque Task calcule les couleurs des Particle en fonction des mouvements souris.
 
Le top départ semble donner par le executorService.invokeAll(tasks);
Comme chacune des Task de tasks sont Callable, j'imagine que toute la mécanique qui va bien se déroule grâce aux bonnes implémentations (cela sert à cela).  
 
NB1 : l'exemple est trop facile, deux tâches ne gèrent jamais la même donnée particles[p], ce qui créerait des problèmes de concurrence et serait proches d'exemples concrets.
NB2 : A priori chaque Task va réagir de même manière aux mouvements de la souris, et calculer les mêmes couleurs, je ne vois pas l’intérêt fonctionnel du bout de code ... du traitement graphique ... ou un simple exercice de style.


Message édité par willy le kid le 13-03-2014 à 10:40:40

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Processing gestion multi-coeur

 

Sujets relatifs
[Projet/Help] Space invader spécial SW Processing.Logiciel de gestion de version
Comment modifier les regles de gestion des CSV ?Gestion de fichiers PHP
Besoin d'aide pour fichier gestion absence en VBAWolf 3D , raycasting et gestion des vecteurs.
Pont entre ciel gestion commercial et SQL/php - OU Access voir autre..Difficulté dans la gestion alternée de deux formulaires
[RESOLU][php]pb gestion des accents dans formulairegestion de la réponse Y / N de Xcopy /P en MSDOS (WS2003 R2)
Plus de sujets relatifs à : Processing gestion multi-coeur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR