• いくつかのOSでは、プロセスが使用するコアを固定することで、スケジューラによってコアを移動させられることを防げる
    • 評価取るときとかにOSのスケジューラの影響を排除できる

Linux

  • tasksetコマンドを使うと、コアをそのプロセスに固定できる
    • そこに固定されるというだけで、そのコアで他のタスクも動いたりはする
    • isolcpusを使ってカーネルのスケジューリングからそのコアを外さないと、占有してはくれない
  • カーネルのboot parameterのnohz_full, isolcpusをいい感じに設定すると、カーネルもそのコアを使わないようにできる
    • コアのトポロジーを意識して、物理コア単位で開放してあげるとよし

参考

macOS

  • うーん、できなさそう?
  • スレッドのQoSは設定できて、多分Eコアで動かしたり配慮はしてくれそう
  • でもRustcore_affinityではどうもx86_64だとできそう? (試してない)

参考

title: "CPU Pinning on macOS – random blog"
image: ""
description: "Apple operating systems explicitly do not support CPU pinning in a shipping configuration."
url: "https://threedots.ovh/blog/2022/06/cpu-pinning-on-macos/"