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

  FORUM HardWare.fr
  Programmation
  C++

  Boost programmation multi core

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boost programmation multi core

n°1769462
Devon92
Posté le 05-08-2008 à 13:28:47  profilanswer
 

Bonjour,
 
J'utilise la librairie boost thread en c++ pour réaliser un programme multi-plateformes (Win, Unix et Mac) et j'aurais voulu savoir si on peut obtenir dans son code le nombre de cores de l'ordinateur sur lequel le programme tourne. Y a-t- il une fonction qui me permetterai d'obtenir cette information ?
 
Merci

mood
Publicité
Posté le 05-08-2008 à 13:28:47  profilanswer
 

n°1769598
Joel F
Real men use unique_ptr
Posté le 05-08-2008 à 15:32:32  profilanswer
 

non :/

n°1769634
jromang
Posté le 05-08-2008 à 16:35:10  profilanswer
 

J'ai été confronté au même problème : le plus simple si tu utilises le compilateur gcc ou intel est d'utiliser OpenMP pour ca : il suffit d'ajouter le header 'omp.h', de linker avec GOMP (dans le cas de gcc), et d'utiliser la fonction omp_get_num_procs()
Si tu utilises le compilo microsoft sous windows, je ne sais pas s'il supporte OpenMP.

n°1769732
tpierron
Posté le 05-08-2008 à 17:59:59  profilanswer
 

Hmm, sur Windows tu as la variable d'environnement NUMBER_OF_PROCESSORS. De ce que j'ai pu voir sur tous les Windows de Win2000 à XP (certainement Vista aussi), elle contient une valeur correcte.

n°1769753
jromang
Posté le 05-08-2008 à 18:14:39  profilanswer
 

l'avantage de la solution OpenPM c'est que ca reste multi-plateforme en évitant les #define ; après ca fait une bibliotheque en plus pour pas grand chose...

n°1769772
Joel F
Real men use unique_ptr
Posté le 05-08-2008 à 18:30:51  profilanswer
 

openMP reste assez mal aisée d'emploi dans certains cas.
@tpierron : je note ton astuce ;)

n°1769881
tpierron
Posté le 05-08-2008 à 23:15:10  profilanswer
 

Ha ouais, tiens tu pourrais aussi rajouter Win2003 dans ma liste, parce qu'il n'y a pas grand chose entre Windows 2000 et XP [:tinostar]

n°1770045
Fraer9
Posté le 06-08-2008 à 10:55:25  profilanswer
 

Y a aussi le nombre de thread concurrent possible :
 
std::thread::hardware_concurrency();  
 
boost::thread::hardware_concurrency();

n°1770569
jromang
Posté le 07-08-2008 à 11:22:05  profilanswer
 

Bien vu Fraer...et merci ! Un truc moche en moins dans mon code ;)


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

  Boost programmation multi core

 

Sujets relatifs
Programmation sous linuxDijkstra et Boost
Programmation C++ et CPLEXProgrammation aide?
Multithread et core 2 duola programmation pour ordinateur
Programmation modulaire - avec les headersboost filesystem & fichiers en lecture seule
Programmation evenementielle et étapes à réaliser en séquence ????Stratégie de programmation
Plus de sujets relatifs à : Boost programmation multi core


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