Escolhendo qual núcleo usar ao executar um programa

Escolhendo qual núcleo usar ao executar um programa

Eu trabalho em um servidor Fedora rodando em um Intel Xeon com 15 núcleos. Alguns usuários estão executando simulações que ocupam quatro núcleos, mas outros parecem não ser utilizados. Existe uma maneira de executar um programa nos núcleos livres em vez de esperar que os núcleos usados ​​sejam liberados?

Responder1

Eu descobri que foi culpa do matlab. Não respeitou meu processo. Executei novamente depois que as outras simulações foram executadas e agora ele funciona em um núcleo separado. Graças aSynetechEu descobri de qualquer maneira que o comando linuxconjunto de tarefasme permite fazer o que preciso, caso precise fazer manualmente.

$ taskset
Usage: taskset [options] [mask | cpu-list] [pid|cmd [args...]]

Options:
 -p, --pid               operate on existing given pid
 -c, --cpu-list          display and specify cpus in list format
 -h, --help              display this help
 -V, --version           output version information

The default behavior is to run a new command:
    taskset 03 sshd -b 1024
You can retrieve the mask of an existing task:
    taskset -p 700
Or set it:
    taskset -p 03 700
List format uses a comma-separated list instead of a mask:
    taskset -pc 0,3,7-11 700
Ranges in list format can take a stride argument:
    e.g. 0-31:2 is equivalent to mask 0x55555555

For more information see taskset(1).

informação relacionada