Como atribuo diferentes núcleos de CPU a diferentes processos?

7

Estou usando o Ubuntu Server Edition 11.10 e tenho dois programas extremamente intensivos da CPU sendo executados no mesmo núcleo. Nenhum desses processos foi programado para processamento multi-core. Existe uma maneira que eu possa dizer ao processo A para rodar no Core 1 e processar B para rodar no Core 2?

    
por Otoris 23.03.2012 / 21:25

2 respostas

6

A resposta aceita pode ser um bom conselho, mas certamente não é uma resposta à sua pergunta. Sua pergunta não indica para mim que você não está qualificado para ouvir a resposta, na verdade, soa como um bom exemplo de uma situação na qual você gostaria de indicar especificamente quais processadores devem fazer o quê.

Chegando ao ponto, o que você quer é CPU Sets. Eles são suportados em 11.10 do Ubuntu, já que ele usa um kernel Linux recente o suficiente. Eu acredito que o Linux 2.6 é necessário.

Você pode ler a página man do cpuset aqui: link

Aqui está outra página para leitura geral: link

O Linux pode ser "ótimo" para decidir como alocar tempo de CPU, mas não é perfeito.

    
por GoldenNewby 24.03.2012 / 02:25
2

Espero que isso não seja rude, mas se você fizer essa pergunta, nem deveria pensar nisso. Esta é uma daquelas coisas que o Linux é seriamente bom em descobrir sozinho. Se você fez isso, provavelmente terá um impacto muito negativo no desempenho. Mesmo que o programa não seja projetado para usar mais processadores, o Linux os moverá para diferentes núcleos, conforme necessário. O programa não vai notar.

Você pode querer dar a eles dois valores de nice baixos com o comando nice para dar a eles prioridades mais altas.

    
por Jo-Erlend Schinstad 23.03.2012 / 23:06