Oracle VM VirtualBox Managerを使用して仮想環境にUbuntuをインストールしましたが、うまく機能します。
ただし、複数のコアを有効にしたいと思います-下の図に示すように、Windowsマシンには2つのコアがあります。
Ubuntuでlscpu
を実行すると、次の情報が表示され、1つのコアのみが使用されていることがわかります。
仮想ボックスの設定を変更して複数のプロセッサを有効にしようとしましたが、次の図に示すように変更できません。
仮想環境で複数のコア(プロセッサ)を有効にするにはどうすればよいですか?
VMで複数のCPUを有効にするには、さらに次の設定が必要です。
[全般設定]タブの64ビット仮想ゲストハードウェア(64ビットゲストの場合)
マザーボード設定タブでI/O APICを有効にします
accelerationタブでハードウェア仮想化(VT-x/AMD-V)を有効にします
使用可能なすべてのコアでVMを実行すると、CPUに実行上限を割り当てるときにホストのパフォーマンスが向上する場合があります。
有効にしていない場合 ホットプラグCP virtualboxのコア数の変更機能は、shut down。
ゲストのパフォーマンスが向上するのは、いくつかのコアを使用するソフトウェアの場合のみです。その場合にのみ、すべてのコアに実行上限を設定することが理にかなっています。
VMが現在実行中(または「保存済み」)の場合、その値を変更することはできません。最初にVMの電源を切ります。
私は、仮想マシン上で順番に実行されるマルチスレッドプログラムに取り組んでいました。あなたと同じような問題がありました。私はそれを修正しました:
以前の標準スレッドのstd :: thread :: hardware_concurrency()は1を返しましたが、変更後は仮想マシンの設定でのCPUの数を返します。
これで、VMでマルチスレッドプログラムを正常に実行できました。