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 :

machine virtuelle et multithread


Sujet :

Threads & Processus C++

  1. #1
    Membre confirmé Avatar de lyxthe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 115
    Par défaut machine virtuelle et multithread
    Bonjour à tous. Je développe un programme c++ multithreadé calculant de grosses matrices en utilisant boost_thread.

    Mon programme contient une variable global indiquant le nombre de thread à créer (je l'initialise en général avec le nombre de processeur de la machine où je teste le programme).

    Le problème que j'ai est que je teste ce programme sur différentes machines, pour la plupart virtuelle (une machine virtuelle comme suit : host win7 quadcore ; guest debian 3 procs alloués; la seconde est une machine virtuelle linux avec 4 coeurs) Sur ces deux machines lorsque je demande à mon programme de s'exécuter avec plusieurs threads, le temps d'exécution est plus long que lorsque je demande au programme de s'exécuter avec un seul thread. Pourtant la charge CPU utilisée et totalement cohérente avec l'exécution prévue. Je passe de 23 minutes pour le cas multithreadé à 16 minutes environ pour le cas monothreadé.

    Jusqu'à récemment je cherchais partout l'erreur qui était surement quelque part dans mon code. Mais à ma grande surprise, après avoir exécuter le même code sur une autre machine (une linux à deux coeurs, mais non virtuelle celle ci) le programme s'exécute comme prévu, et passe de 16 minutes en monothread vers 14 minute en doublethread.

    Ma question est la suivante, est-il possible que l'architecture des machines virtuelle ne fasse pas bon ménage avec boost_thread ou que quelque chose empêche le bon fonctionnement de programme multithreadé dans le cas d'exécution de ces programmes sur des machines virtuelles?

    En espérant avoir été clair, merci pour vos éventuelles réponses.

  2. #2
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    Faut surtout régler la VM et ton BIOS pour que la VM accepte plusieurs coeurs en natif.

  3. #3
    Membre confirmé Avatar de lyxthe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 115
    Par défaut
    euh....d'accord mais je sais pas trop comment faut faire ça. C'est une option du bios de la machine hôte ?

Discussions similaires

  1. [debutant] paramétrer mémoire de la machine virtuelle
    Par iguanevif dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/08/2005, 16h40
  2. [J2ME]Une machine virtuel standart pour PDA
    Par Wln dans le forum Java ME
    Réponses: 3
    Dernier message: 30/06/2005, 09h45
  3. [Applet]Version de la machine virtuelle
    Par Invité dans le forum Applets
    Réponses: 7
    Dernier message: 16/06/2004, 14h25
  4. [Debutant(e)]Utiliser une autre machine virtuelle
    Par gooser2000 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/06/2004, 18h08
  5. Trouver l'emplacement de la machine virtuelle java
    Par aymron dans le forum Windows
    Réponses: 2
    Dernier message: 30/03/2004, 12h11

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