cpu load não distribuído pelos núcleos

2

Sob uma tarefa pesada, parece que a carga da cpu não está espalhada por todos os núcleos disponíveis e a ventoinha é acionada enquanto espero que a operação seja executada ... Olhando para o monitor da CPU, uma CPU é 100% quando as outras estão ociosas.

Eu tenho um i7 com 8 núcleos com o Ubuntu 13.10 e está me incomodando ter que esperar quando eu sei que há 8 vezes mais energia disponível.

Eu posso reproduzir isso abrindo um arquivo grande (70M) com o gedit, mas isso acontece em várias circunstâncias.

Algo que eu possa fazer sobre isso?

aplausos!

    
por pdelorme 10.12.2013 / 09:31

1 resposta

4

Um i7 tem 4 núcleos, mas cada núcleo tem dois hyperthreads (o que significa que ele pode alternar entre duas tarefas muito rapidamente). Para o sistema operacional, parece 8 núcleos, então a distinção provavelmente não é relevante aqui. Desculpa. : -)

OK, então o sistema operacional pode usar o i7 para efetivamente fazer 8 coisas ao mesmo tempo. Mas isso pressupõe que tenha 8 coisas ao mesmo tempo para fazer. Se tiver apenas uma coisa a fazer, só usará 1 núcleo.

Aqui é onde entra discussão para jogar. Programas podem ser escritos para usar threads - o GIMP e o ImageMagick são dois programas que eu conheço que fazem isso. Quando eles têm uma tarefa complicada para fazer, eles se dividem para trabalhar e executá-lo em diferentes threads, que o SO atribui aos diferentes núcleos. Tente configurar o ImageMagick para trabalhar no processamento de um JPEG realmente grande e você verá todos os 8 núcleos ocupados.

Agora, não tenho certeza se o gedit é multithreaded ou não - mas, mesmo que seja, o principal trabalho ao abrir um arquivo 70M é processar as interrupções do disco quando o arquivo é carregado, e acho que o trabalho fica restrito a um núcleo.

O que você pode fazer sobre isso? Basta ficar ocupado, fazer várias tarefas, fazer com que seu computador faça muitas coisas de uma vez e, em seguida, a carga será distribuída pelos núcleos.

    
por David Purdue 10.12.2013 / 10:16