Comment activer plusieurs cœurs dans mon environnement virtuel?

21

J'ai installé Ubuntu dans un environnement virtuel à l'aide d'Oracle VM VirtualBox Manager et cela fonctionne très bien.

Cependant, je voudrais activer plusieurs cœurs - comme le montre l'image ci-dessous, ma machine Windows a 2 cœurs:

entrez la description de l'image ici

Maintenant, lorsque j'exécute lscpudans Ubuntu, j'obtiens les informations suivantes révélant qu'un seul cœur est utilisé:

entrez la description de l'image ici

J'ai essayé de modifier les paramètres de la boîte virtuelle pour activer plusieurs processeurs, mais cela ne me permettra pas de le faire comme indiqué dans l'image ci-dessous:

Image

Comment activer plusieurs cœurs (processeurs) dans mon environnement virtuel?

Hasse Andersen
la source

Réponses:

18

Pour activer plus d'un processeur dans votre machine virtuelle, les paramètres suivants sont en outre nécessaires:

  • Matériel invité virtuel 64 bits dans l'onglet Paramètres généraux (pour les invités 64 bits)

    entrez la description de l'image ici

  • activer I / O APIC dans l'onglet Paramètres de la carte mère

    entrez la description de l'image ici

  • activer la virtualisation matérielle (VT-x / AMD-V) dans l'onglet Accélération

    entrez la description de l'image ici

Notez que si vous exécutez votre machine virtuelle sur tous les cœurs disponibles, vous pouvez bénéficier de meilleures performances d'hôte lors de l'attribution d'un plafond d'exécution au processeur.

Si vous n'aviez pas activé la fonction CPU hot-plug de virtualbox, le changement du nombre de cœurs ne peut être effectué que sur une machine qui a été arrêtée .

Une augmentation des performances de l'invité n'est à prévoir que pour les logiciels utilisant plusieurs cœurs. Ce n'est qu'alors que donner à tous les cœurs un plafond d'exécution est logique.

Takkat
la source
donc ce n'est pas possible sur un Ubuntu 32 bits?
1
@cipricus merci pour l'avis, 64 bits n'est requis que pour un invité 64 bits, bien sûr.
Takkat
@Takkat J'utilise Ubuntu 32 bits comme OS invité. Comment puis-je activer plusieurs processeurs?
smwikipedia
15

Si votre machine virtuelle est en cours d'exécution (ou «enregistrée»), vous ne pouvez pas modifier cette valeur. Éteignez d'abord votre machine virtuelle.

0x80
la source
Bien que ce serait vraiment cool si nous pouvions échanger des processeurs lors de l'exécution. Cela donnerait à la limitation du processeur une nouvelle dimension.
Tomáš Zato - Rétablir Monica
2
Virtualbox prend en charge le branchement à chaud du processeur
brunoqc
1

Je travaillais sur un programme multithread qui s'exécutait dans un ordre séquentiel sur une machine virtuelle. J'ai eu le même problème que vous. Je l'ai corrigé par:

  1. Arrêtez la machine virtuelle ou quittez.
  2. Lancez VMWare -> Sélectionnez la machine -> Cliquez sur Système -> Cliquez sur Processeur -> Changer le nombre de processeurs.
  3. Démarrez la machine virtuelle.

Plus tôt std :: thread :: hardware_concurrency () du thread standard a renvoyé 1, mais, après les modifications, il retourne le nombre de CPU sur les paramètres de la machine virtuelle.

Maintenant, j'ai pu exécuter mes programmes multithread sur VM avec succès.

Prashant Nidgunde
la source