Qualquer maneira de fazer um programa rodar em um núcleo específico no lançamento?

3

Eu tenho um programa que é executado no meu servidor, eu quero executar várias instâncias do mesmo programa (é um aplicativo que só pode ser executado em um único núcleo ..), estou querendo saber se eu posso atribuí-los a um núcleo em tempo de execução? usando um script em lotes ou algo assim? Estou executando o Windows Server 2012.

    
por James Trotter 01.02.2014 / 17:45

2 respostas

4

Espere um segundo ... você fez uma pergunta e aceitou a resposta "não faça isso".

Ninguém realmente respondeu à sua pergunta.

Por favor, não me leve a mal. Sem ofender a todos os outros respondentes, e eu concordo com eles que você provavelmente não está pensando nisso até o fim, se você tem que fazer essa pergunta em primeiro lugar ... mas, você fez uma pergunta específica no entanto.

Então aqui está a resposta.

C:\Windows\system32>start /affinity 1 notepad.exe

Isso iniciará uma instância do processo Notepad.exe definida como uma afinidade somente à primeira CPU. Você pode misturar e combinar CPUs (núcleos), se desejar, mas você perguntou como iniciar um processo em uma única CPU.

Você pode verificar se o comando funcionou verificando a afinidade dos processos resultantes no Gerenciador de Tarefas ou no Process Explorer.

    
por 18.02.2014 / 04:17
2

Na grande maioria das circunstâncias, a tentativa de gerenciar manualmente as ligações de processo para CPU resultará, na verdade, em um desempenho geral reduzido do que apenas permitindo que o planejador de CPU do kernel resolva as coisas.

Portanto, a menos que você encontre alguns problemas reais de desempenho que possam ser rastreados diretamente para o agendamento da CPU, isso não é algo que você precisa pensar.

    
por 01.02.2014 / 19:41