Colocando processos do Linux em certos núcleos de CPU [duplicados]

2

As CPUs do computador têm muitos núcleos dentro deles hoje em dia.

Sempre me perguntei se existe uma maneira de, quando eu iniciar um processo na linha de comando do Linux, especificar qual núcleo ou núcleos específicos esse processo possa usar?

Por exemplo, posso iniciar uma tarefa grep massiva e dizer "use ALL CPU2 para você".

Ou posso iniciar uma tarefa de localização e dizer "nunca sair da CPU3".

Ou talvez eu possa iniciar uma tarefa de decodificação de vídeo e dizer "use o que estiver disponível no CPU1 e no CPU2"

OR, não há como fazer isso porque não é necessário e o sistema operacional está fazendo esse tipo de coisa de forma inteligente por si só (baseado em bons níveis e no uso geral de recursos do processo, etc.)

Se você souber o que eu sou

    
por Daniel 10.09.2012 / 15:28

2 respostas

2

Você está se perguntando sobre a afinidade da CPU . Descobri que havia uma boa explicação da afinidade de CPU no NixCraft . Mas note que o kernel do Linux é de fato, como você diz, já fazendo escolhas inteligentes.

    
por 10.09.2012 / 15:45
1

Veja o utilitário taskset . Deve ser exatamente o que você está procurando.

    
por 10.09.2012 / 17:47