I work on a Fedora server running on an Intel Xeon with 15 cores. Some users are running simulations that take up four of the cores, but others seem to be unused. Is there a way I can have a program run on the free cores instead of waiting for the used cores to be freed?
I found out it was matlab's fault. It did not respect my process. I ran it again after the other simulations were run and now it works on a separate core. Thanks to Synetech I found out anyway that the linux command taskset allows me to do what I need, in case I needed to do it manually.
$ 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).