Por que minha CPU usa apenas um núcleo?

1

Carrega 100% de uma das CPUs por vez. Isso é de propósito? Não deveria tentar 25/25/25/25?

É um Intel i5-3320M - 2,60GHz x 4

Meu amigo em um win10 está fazendo o balanceamento de carga 'correto' carregando o mesmo arquivo. (é um insanamente enorme .osm que estamos analisando no IntelliJ)

    
por sech 10.03.2017 / 12:19

3 respostas

3

4 × 0,25 é o mesmo que 1.

Parece que uma tarefa single-threaded está agendada para ser executada em várias CPUs de maneira round-robin, que é o que o Windows faz para distribuir cargas computacionais e, portanto, elétricas e térmicas entre diferentes áreas de chip para melhorar a dissipação de calor. Isso não tem nada a ver com multi-threading e é apenas um artefato das diferentes estratégias de agendamento do Windows e Linux.

    
por David Foerster 14.03.2017 / 13:14
1

Parece que você tem um programa muito ocupado (não multi-threaded) que ocupa uma cpu. Aposto que você encontra um processo com quase 100% de carga da CPU em um estado anormal ("quase travado") - por exemplo, Firefox com muitas abas abertas e poder de sucção de JavaScript. Executar ps aux no console deve lhe dar o culpado. O consumo crescente de memória também pode ser causado por esse processo. A maioria dos outros processos é executada de maneira mais ou menos bem distribuída nas outras CPUs, dando a você a carga de 10 a 20% esperada.

    
por sruetti 10.03.2017 / 13:04
0

Isso é possível somente se o programa permitir multi-threading. Se a tarefa em si suportar muliti-threading, ela não poderá ser paralelizada. Por exemplo, o método de Newton-Raphson.

Mas, sua CPU não usa principalmente o mesmo núcleo toda vez, mas escolhe aleatoriamente um dos núcleos para o programa. Por exemplo, o tempo, um núcleo diferente atinge 100% quando o programa é executado toda vez.

Gráfico do monitor do sistema:

    
por spharish 10.03.2017 / 13:03