Bonjour,
non les programmes sous java ne tournent pas plus sur les deux
processeurs que les programmes C++.

Mais les programmes C++ et Java peuvent tourner sur plusieurs
processeurs à condition qu'on l'ai programmé pour.

Pour être très clair, que ce soit en java ou en n'importe quel autre
langage, une thread, c'est à dire l'exécution d'un traitement séquentiel
ne peut se faire que sur un processeur. Le système d'exploitation ne
sait pas analyser un programme et confier par anticipation un traitement
au second processeur, ce traitement doit être complètement indépendant
de ce qu'est en train de faire le premier processeur. Cette analyse est
trop compliquée.

Par contre le programmeur lui doit le savoir. Et lui décide de faire
plusieurs threads pour chacun des traitements indépendants, et prévoit
l'attente de la fin des traitements par toutes ces threads avant de
poursuivre le traitement commun. 

S'il y a plusieurs processeurs, c'est au système d'exploitation de les
utiliser en répartissant les threads. S'il n'y en a pas le système
d'exploitation se débrouille avec un processeur.

Si vous savez isoler des traitements indépendants, en faire plusieurs
threads n'est pas compliqué.

Il y a simplement quelques règles à respecter sur les données qui sont
manipulées par plusieurs threads à la fois.

Si par exemple deux threads (ou processus) écrivent dans le même
fichier, le résultat risque d'être un peu embrouillé. Il en est de même
si deux thread modifie simultanément la mémoire. Exemple classique
d'incrémentation d'une variable. 

Supposons la valeur initiale de 1:
Premiere thread lit la variable et récupère 1.
Deuxieme thread lit la variable et récupère 1.
Chacune d'elle incrémente la valeur 1, et à tour de rôle écriront 2,
alors que la variable aurait dû être incrémentée deux fois donc avoir la
valeur 3.


J'espère avoir répondu un peu mieux aux interrogations.

Donc, première étape, identifiez vos traitements et es données
partagées.

Pascal




Le dim 22/09/2002 à 17:09, Jean-Pierre Hoarau a écrit :
> La réponse est non. J'ai moi-même un bi pro et les programmes en C++ 
> tournent sur un seul processeur. En revanche, si je lance un second 
> programme il s'exécute sur le second processeur.
> 
> Par contre il semblerait que les programmes tournant sous java tournent 
> sur les  2 processeurs en même temps.
> 
> Voila!
> a+
> 
> Aissa Bouanan wrote:
> > Dans ce cas, en quoi consiste le role d'un noyau multi-proc. Par exple
> > quand je lance plusieurs programmes differents, est-ce que le noyau
> > permet la répartition de la charge sur les deux processeurs ou c'est
> > toujours un seul processeur qui bosse tandis que l'autre se la bronze au
> > soleil ;-)
> > 
> > Pour le cas de mon programme, pas de pour les threads, j'avais
> > d'ailleurs l'intention de le reprendre pour introduire de nouveaux
> > algorithmes de calcul 
> > 
> > Merci,
> > Aissa
> > 
> > Le dim 22/09/2002 à 12:23, Garcia Pascal a écrit :
> > 
> >>Bonjour,
> >>la répionse c'est a priori non mon capitaine, ar je suppose que tout est
> >>lancé en séquence dans un seul programme.
> >>
> >>Une thread (en général une exécution d'un programme, une tâche) ne
> >>fonctionne que sur un seul processeur. Pour pouvoir profiter du
> >>multiprocesseur, il faudrait décomposer ton programme de telle sorte que
> >>les calculs soient en parallèle par des threads (tâches) différentes.
> >>
> >>A plus tard 
> >>
> >>Pascal
> >>
> >>Le dim 22/09/2002 à 14:02, Aissa Bouanan a écrit :
> >>
> >>>Re-bonjour,
> >>>
> >>>Question peut-etre bête :
> >>>
> >>> Si je m'offre un PC bi-processeur, que l'install de linux s'effectue
> >>>bien comme il faut ! Est-ce que les programmes que j'ai ecrit (en
> >>>C++,pour des calculs de stucture de genie-civil) pourront profiter de la
> >>>puissance des deux processeurs, càd est-ce que le kernel s'occupe du
> >>>partage du travail sur les duex processeurs  ou c'est moi qui doit
> >>>réecrire mon code pour pour le faire, et dans le dernier cas, qqu'un
> >>>pourrait me refiler des liens !
> >>>
> >>>Merci pour vos réponses, car je ne sais pas comment se comportent le bi
> >>>-proc, mais j'ai besoins de puissance de calcul !
> >>>
> >>>A+,
> >>>Aissa
> >>>
> >>>
> >>>
> >>>
> >>>________________________________________________________________
> >>>Etudiant: Wanadoo t'offre le Pack eXtense Haut Débit soit 150,92 euros 
>d'économies !
> >>>Et pour 1 euro de plus, reçois le CD-ROM du jeu Dark Age of Camelot
> >>>+ 1 mois de jeu en réseau offert !
> >>>Clique ici : http://www.ifrance.com/_reloc/mail.etudiant
> >>>
> >>>
> >>>----
> >>>
> >>>
> >>>Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
> >>>Rendez-vous sur "http://www.mandrakestore.com";
> >>>
> >>
> >>
> >>----
> >>
> >>
> > 
> >>Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
> >>Rendez-vous sur "http://www.mandrakestore.com";
> >>
> > 
> > 
> > 
> > ________________________________________________________________
> > Etudiant: Wanadoo t'offre le Pack eXtense Haut Débit soit 150,92 euros d'économies 
>!
> > Et pour 1 euro de plus, reçois le CD-ROM du jeu Dark Age of Camelot
> > + 1 mois de jeu en réseau offert !
> > Clique ici : http://www.ifrance.com/_reloc/mail.etudiant
> > 
> > 
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
> > Rendez-vous sur "http://www.mandrakestore.com";
> > 
> 
> 
> 
> 
> ----
> 

> Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
> Rendez-vous sur "http://www.mandrakestore.com";



Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à