
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).