Jak włączyć wiele rdzeni w moim wirtualnym środowisku?

21

Zainstalowałem Ubuntu w środowisku wirtualnym za pomocą Oracle VM VirtualBox Manager i działa świetnie.

Chciałbym jednak włączyć wiele rdzeni - jak widać na poniższym obrazku, mój komputer z systemem Windows ma 2 rdzenie:

wprowadź opis zdjęcia tutaj

Teraz, kiedy uruchamiam lscpuw Ubuntu, otrzymuję następujące informacje ujawniające, że używany jest tylko 1 rdzeń:

wprowadź opis zdjęcia tutaj

Próbowałem zmienić ustawienia wirtualnego urządzenia, aby włączyć wiele procesorów, ale nie pozwoli mi to zrobić, jak pokazano na poniższym obrazku:

Wizerunek

Jak włączyć wiele rdzeni (procesorów) w moim wirtualnym środowisku?

Hasse Andersen
źródło

Odpowiedzi:

18

Aby włączyć więcej niż 1 procesor na maszynie wirtualnej, potrzebne są dodatkowo następujące ustawienia:

  • 64-bitowy sprzęt wirtualnego gościa na karcie Ustawienia ogólne (dla gości 64-bitowych)

    wprowadź opis zdjęcia tutaj

  • włącz I / O APIC w zakładce Ustawienia płyty głównej

    wprowadź opis zdjęcia tutaj

  • włącz wirtualizację sprzętową (VT-x / AMD-V) w zakładce Przyspieszenie

    wprowadź opis zdjęcia tutaj

Zauważ, że jeśli uruchomisz maszynę wirtualną na wszystkich dostępnych rdzeniach, możesz doświadczyć lepszej wydajności hosta, przypisując do CPU limit wykonania.

Jeśli nie włączyłeś funkcji procesora typu hot-plug w wirtualnej skrzynce, zmiana liczby rdzeni może być wykonana tylko na maszynie, która została wyłączona .

Wzrost wydajności u gościa jest oczekiwany tylko w przypadku oprogramowania wykorzystującego kilka rdzeni. Dopiero wtedy podanie wszystkich rdzeni z limitem wykonania ma sens.

Takkat
źródło
więc nie jest to możliwe w 32-bitowym Ubuntu?
1
@cipricus dzięki za powiadomienie, 64-bit jest oczywiście wymagany tylko dla 64-bitowego gościa.
Takkat
@Takkat Używam 32-bitowego systemu Ubuntu jako systemu operacyjnego gościa. Jak mogę włączyć wiele procesorów?
smwikipedia
15

Jeśli Twoja maszyna wirtualna jest obecnie uruchomiona (lub „Zapisana”), nie możesz zmienić tej wartości. Najpierw wyłącz maszynę wirtualną.

0x80
źródło
Chociaż byłoby naprawdę fajnie, gdybyśmy mogli zamienić procesory w czasie wykonywania. Dałoby to procesorowi przepustowość nowy wymiar.
Tomáš Zato - Przywróć Monikę
2
Virtualbox obsługuje podłączanie procesora na gorąco
brunoqc,
1

Pracowałem nad programem wielowątkowym, który działał w kolejności sekwencyjnej na maszynie wirtualnej. Miałem podobny problem jak ty. Naprawiłem to przez:

  1. Zatrzymaj maszynę wirtualną lub wyjdź.
  2. Uruchom VMWare -> Wybierz komputer -> Kliknij System -> Kliknij Procesor -> Zmień procesory liczbowe.
  3. Uruchom maszynę wirtualną.

Wcześniej std :: thread :: hardware_concurrency () ze standardowego wątku zwróciło 1, ale po zmianach zwraca liczbę procesorów w ustawieniach maszyny wirtualnej.

Teraz udało mi się pomyślnie uruchomić moje programy wielowątkowe na maszynie wirtualnej.

Prashant Nidgunde
źródło