Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Threads & Processus
Threads & Processus Forum d'entraide sur le multithreading et la programmation parallèle en C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/01/2013, 10h28   #1
sone47
Membre régulier
 
Inscription : novembre 2006
Messages : 349
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 349
Points : 79
Points : 79
Par défaut Multithread sur plusieurs proc

Bonjour,

Une question assez simple,
Un programme C++ multithread avec Boost.thread sur une machine a X processeurs de Y coeurs.
Est ce que le systeme utilisera:
- 1 proc mais ses Y coeurs
- Les X procs avec leurs Y coeurs ?

J'essaye de voir sur le net mais tout est dit et son contraire.
Comment etre certain d'utiliser toutes les ressources (X * Y coeurs) ?
On entend parler d'OpenMp, je pensais que c'était juste une facon differente de faire du multithread, comme Boost.thread ou autre.

Merci pour vos infos.
Bonne fin de journée
sone47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 12h57   #2
leternel
Membre Expert
 
Homme Pierre
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 1 175
Points : 2 476
Points : 2 476
Pour ce que j'en sais, c'est l'OS qui fait comme il veut.

Je crois que pour Linux, au moins, il y a des possibilités de configuration de l'algorithme de répartition.
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
  • Une variable de moins est une source d'erreur en moins.
  • Un pointeur de moins est une montagne d'erreurs en moins.
  • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
  • La plus sotte des questions est celle qu'on ne pose pas.
leternel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 13h43   #3
cob59
Membre chevronné
 
Inscription : décembre 2008
Messages : 490
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 490
Points : 751
Points : 751
Avec Boost.Thread il existe hardware_concurrency() pour savoir combien de threads peuvent tourner "matériellement" en parallèle.
cob59 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 17h16   #4
sone47
Membre régulier
 
Inscription : novembre 2006
Messages : 349
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 349
Points : 79
Points : 79
Bonjour,

Je remonte ce post afin de savoir si à l'inverse il est possible de fixer le nombre de coeur utilisés pour ne pas tout monopoliser.

Merci d'avance
sone47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 17h36   #5
Ehonn
Membre éprouvé
 
Étudiant
Inscription : février 2012
Messages : 206
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2012
Messages : 206
Points : 438
Points : 438
Avec OpenMP, tu as la variable d'environnement OMP_NUM_THREADS pour spécifier le nombre de threads à utiliser.
Avec Boost.Thread, ça dépend du nombre de threads que tu créés dans le programme (?)
Ehonn est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 18h03   #6
sone47
Membre régulier
 
Inscription : novembre 2006
Messages : 349
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 349
Points : 79
Points : 79
Ok justement c'est ce que je pensais, il faut donc que je definisse dans mon main thread le lancement de X threads seulement.
Je vais creer un nouveau thread car ma question n'a plus lien avec le sujet ici.

Merci
sone47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h00.


 
 
 
 
Partenaires

Hébergement Web