web-dev-qa-db-ja.com

仮想環境で複数のコアを有効にするにはどうすればよいですか?

Oracle VM VirtualBox Managerを使用して仮想環境にUbuntuをインストールしましたが、うまく機能します。

ただし、複数のコアを有効にしたいと思います-下の図に示すように、Windowsマシンには2つのコアがあります。

enter image description here

Ubuntuでlscpuを実行すると、次の情報が表示され、1つのコアのみが使用されていることがわかります。

enter image description here

仮想ボックスの設定を変更して複数のプロセッサを有効にしようとしましたが、次の図に示すように変更できません。

Image

仮想環境で複数のコア(プロセッサ)を有効にするにはどうすればよいですか?

20
Hasse Andersen

VMで複数のCPUを有効にするには、さらに次の設定が必要です。

  • [全般設定]タブの64ビット仮想ゲストハードウェア(64ビットゲストの場合)

    enter image description here

  • マザーボード設定タブでI/O APICを有効にします

    enter image description here

  • accelerationタブでハードウェア仮想化(VT-x/AMD-V)を有効にします

    enter image description here

使用可能なすべてのコアでVMを実行すると、CPUに実行上限を割り当てるときにホストのパフォーマンスが向上する場合があります。

有効にしていない場合 ホットプラグCP virtualboxのコア数の変更機能は、shut down

ゲストのパフォーマンスが向上するのは、いくつかのコアを使用するソフトウェアの場合のみです。その場合にのみ、すべてのコアに実行上限を設定することが理にかなっています。

16
Takkat

VMが現在実行中(または「保存済み」)の場合、その値を変更することはできません。最初にVMの電源を切ります。

15
0x80

私は、仮想マシン上で順番に実行されるマルチスレッドプログラムに取り組んでいました。あなたと同じような問題がありました。私はそれを修正しました:

  1. 仮想マシンを停止するか、終了します。
  2. VMWareの起動->マシンの選択->システムのクリック->プロセッサーのクリック->プロセッサーの数の変更。
  3. 仮想マシンを起動します。

以前の標準スレッドのstd :: thread :: hardware_concurrency()は1を返しましたが、変更後は仮想マシンの設定でのCPUの数を返します。

これで、VMでマルチスレッドプログラムを正常に実行できました。

1