Я установил Ubuntu в виртуальной среде, используя Oracle VM VirtualBox Manager, и он отлично работает.
Однако я бы хотел включить несколько ядер - как видно на рисунке ниже, у моего компьютера с Windows есть 2 ядра:
Теперь, когда я запустить lscpu
в Ubuntu, я получаю следующую информацию, показывающую, что используется только 1 ядро:
Я попытался изменить настройки виртуальной коробки включить несколько процессоров, но это не позволит мне сделать это, как показано на изображении ниже:
Как включить несколько ядер (процессоров) в моем виртуальная среда?
Для включения больше чем 1 ЦП в VM, следующие настройки необходимы, кроме того:
64-разрядные виртуальные гостевые аппаратные средства на вкладке настроек General (для 64-разрядных гостей)
включите вводу-выводу APIC на вкладке настроек Motherboard
включите аппаратную виртуализацию (VT-x/AMD-V) на вкладке Acceleration
Обратите внимание на это, если Ваше выполнение Ваш VM на всех ядрах, доступных, можно испытать лучшую производительность хоста при присвоении ограничения выполнения ЦП.
Если Вы не активировали опцию CPU замены в горячем режиме изменения virtualbox количества ядер, может только быть сделан на машине, которая была закрыта.
Повышение производительности гостя только, чтобы ожидаться для программного обеспечения, которое использует несколько ядер. Только затем предоставление всех ядер с ограничением выполнения имеет смысл.
Если ваша виртуальная машина в данный момент работает (или «сохранена»), вы не можете изменить это значение. Сначала отключите вашу виртуальную машину.
Я работал над многопоточной программой, которая выполнялась в последовательном порядке на виртуальной машине. У меня была такая же проблема, как и у вас. Я исправил это следующим образом:
Ранее std :: thread :: hardware_concurrency () из стандартного потока возвращал 1, но после изменений возвращает количество процессоров в настройках виртуальной машины.
Теперь я смог успешно запускать свои многопоточные программы на ВМ.