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

Threads & Processus C++ Discussion :

[C++][UNIX] Question sur la parallélisation


Sujet :

Threads & Processus C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut [C++][UNIX] Question sur la parallélisation
    Bonsoir à tous,

    Voila mon soucis, j'ai une application qui fait des calculs et je voulais le découper en plusieurs sous problèmes afin de profiter de mon 4 cœurs,
    j'ai donc un pool de thread qui créer 4 threads et qui en crée à nouveau si l'un meurt jusqu'à que les calcul soient terminées. Je pensais qu'il allait y avoir un thread par cœur. Erreur !!

    Donc j'ai commencer à regarder du coup de la parallélisation avec OpenMp, MPI... et ca a pas l'air super simple donc je voudrais savoir c'est quoi le mieux ayant 4 thread (utilisation de la lib pthread) pour mettre chacun des threads sur un coeur ?

    Merci d'avance
    Cordialement,
    NeoKript

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 113
    Billets dans le blog
    147
    Par défaut
    Bonjour,

    Je pense qu'avec pthread cela suffit.
    Apres, je pense ausso au'il n'y a pas de methode sur le comment le CPU gere les threads (ainsi que le systeme).
    Par contre, je conseille de faire comme dans les recommendations de GCC et donc de faire n+1 threads, avec n le nombre de coeurs / CPU que vous avez.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    si tu utilise pthread
    je te conseille de jeter un coup d'œil à ces fonctions elle pourront probablement t'aider:
    • sched_setaffinity: indique sur quel processeur/cœur tu veux coller les prochains threads.
    • pthread_setconcurrency donne une indication au système sur le niveau de parallélisme que tu souhaite.


    http://linux.die.net/man/2/sched_setaffinity
    http://linux.die.net/man/3/pthread_setconcurrency

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par défaut
    Bonjour,
    (si c'est linux ou un bsd c'est un sytème GNU et pas unix enfin bon GNU = GNU is NOT UNIX )
    as tu vérifiés si t'on système était bien configuré pour utilisé tes 4 coeurs vu que ce n'est pas le cas sur l'installation de base
    Si ce n'est pas le cas il faut que tu fasse quelques modifications au niveaux de ton KERNEL
    Tu trouveras toutes la documentation avec google pour le faire
    Bonne journée

  5. #5
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Citation Envoyé par jouana Voir le message
    Bonjour,
    (si c'est linux ou un bsd c'est un sytème GNU et pas unix enfin bon GNU = GNU is NOT UNIX )
    as tu vérifiés si t'on système était bien configuré pour utilisé tes 4 coeurs vu que ce n'est pas le cas sur l'installation de base
    Si ce n'est pas le cas il faut que tu fasse quelques modifications au niveaux de ton KERNEL
    Tu trouveras toutes la documentation avec google pour le faire
    Bonne journée
    Effectivement sous linux il faut booter sur un kernel smp

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

Discussions similaires

  1. une petite question sur des arguments du unix shell
    Par kinkichin dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 22/09/2009, 12h25
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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