IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[MultiCore] connaitre le nb de processeur ou core


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Décembre 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Informatique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 146
    Par défaut [MultiCore] connaitre le nb de processeur ou core
    Bonjour à tous,

    Suite à ma question sur le thread :
    http://www.developpez.net/forums/sho...d.php?t=142196 , je viens donc poser ma question ici. Connaissez-vous un moyen de pouvoir connaitre le nombre de core/processeur d'une machine en c? aprés il me suffit de créer une bibliothéque de fonctions dynamique que j'appelerais via JNI ^^. Et je pourrais me lancer :p

    Mais bon faut que je trouve un moyen de pouvoir connaitre le nombre de processeur sur la machine histoire de rendre une optimisation selon la puissance de parralléle disponible

    merci par avance

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    le langage C ne permet pas de faire cela nativement. Il faudra plus certainement dialoguer avec le système d'exploitation via l'une de ses APIs.

    Sous Windows, GetSystemInfo() rempli une structure comprenant le champ dwNumberOfProcessors.

    http://msdn.microsoft.com/library/de...systeminfo.asp

    Sous unixoïde, la fonction sysconf() avec comme paramètre _SC_NPROCESSORS_CONF (nombre de processeurs disponibles pour l'O.S)

    ou

    _SC_NPROCESSORS_ONLN (nombre de processeur existant [certains processeurs peuvent être physiquement présent mais non utilisés par le système])


    http://docs.sun.com/app/docs/doc/816...bb3hrun?a=view

    Je ne sais pas si les fonctions font la distinction entre processeurs physiques et logiques (ex. d'un processeur intel avec hyperthreading qui pourrait être détecté comme deux processeurs). Il faudra tester pour être sûr...

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Décembre 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Informatique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 146
    Par défaut
    Et bien merci pour ces informations je vais pouvoir me débrouiller avec ces informations.

    Merci encore.

  4. #4
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Tu as une autre possibilité. J'utilise la bibliothèque OpenMP <omp.h> en C. Du coup, tu peux utiliser la fonction GetThreadNumber(). En fait, openMP utilise une syntaxe qui simplifie les appels systèmes... et grandement.
    Pour utiliser OpenMP ou MP, tu dois utiliser un compilateur qui le supporte.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MultiCore] connaitre le nb de processeur ou core
    Par estacado dans le forum Général Java
    Réponses: 5
    Dernier message: 09/02/2008, 08h49
  2. Réponses: 268
    Dernier message: 07/11/2007, 11h11
  3. Benchmark sur processeur multi-core
    Par Charlemagne dans le forum C++
    Réponses: 123
    Dernier message: 16/07/2007, 10h51
  4. Réponses: 4
    Dernier message: 01/05/2007, 10h37
  5. Processeur Dual Core
    Par Oberown dans le forum Composants
    Réponses: 8
    Dernier message: 16/03/2006, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo