Como habilito vários núcleos no meu ambiente virtual?

20

Instalei o Ubuntu em um ambiente virtual usando o Oracle VM VirtualBox Manager e funciona muito bem.

No entanto, eu gostaria de habilitar vários núcleos - como visto na imagem abaixo, minha máquina Windows possui 2 núcleos:

insira a descrição da imagem aqui

Agora, quando executo o lscpuUbuntu, recebo as seguintes informações, revelando que apenas 1 núcleo está sendo utilizado:

insira a descrição da imagem aqui

Tentei alterar as configurações da caixa virtual para habilitar vários processadores, mas isso não me permite fazê-lo, como mostrado na imagem abaixo:

Imagem

Como habilito vários núcleos (processadores) no meu ambiente virtual?

Hasse Andersen
fonte

Respostas:

17

Para habilitar mais de 1 CPU na sua VM, são necessárias as seguintes configurações:

  • Hardware de convidado virtual de 64 bits na guia Configurações gerais (para convidados de 64 bits)

    insira a descrição da imagem aqui

  • ative o I / O APIC na guia Configurações da placa-mãe

    insira a descrição da imagem aqui

  • ativar a virtualização de hardware (VT-x / AMD-V) na guia Aceleração

    insira a descrição da imagem aqui

Observe que, se você executar sua VM em todos os núcleos disponíveis, poderá obter um melhor desempenho do host ao atribuir um limite de execução à CPU.

Se você não ativou o recurso de CPU hot-plug da caixa virtual, a alteração do número de núcleos só poderá ser feita em uma máquina que foi desligada .

É esperado um aumento de desempenho no convidado para software que faça uso de vários núcleos. Só assim, dar sentido a todos os núcleos com um limite de execução.

Takkat
fonte
então isso não é possível em um Ubuntu de 32 bits?
11
@cipricus obrigado pelo aviso, é claro que é necessário apenas 64 bits para um convidado de 64 bits.
Takkat
@ Takkat Estou usando o Ubuntu de 32 bits como sistema operacional convidado. Como posso ativar vários cpus?
smwikipedia
15

Se sua VM está atualmente em execução (ou "Salvo"), você não pode alterar esse valor. Desligue sua VM primeiro.

0x80
fonte
Embora seria muito legal trocarmos processadores em tempo de execução. Isso daria a otimização da CPU uma nova dimensão.
Tomáš Zato - Restabelece Monica
2
Virtualbox suportes CPU hot-conectando
brunoqc
1

Eu estava trabalhando em um programa multithread que era executado em ordem seqüencial na máquina virtual. Eu tive um problema semelhante ao seu. Corrigi-o por:

  1. Pare a máquina virtual ou saia.
  2. Inicie o VMWare -> selecione a máquina -> clique em Sistema -> clique em Processador -> Alterar processadores de números.
  3. Inicie a máquina virtual.

O std :: thread :: hardware_concurrency () anterior do thread padrão retornou 1, mas, após as alterações, retorna o número de CPUs nas configurações da Máquina Virtual.

Agora, eu era capaz de executar meus programas multithread na VM com êxito.

Prashant Nidgunde
fonte