Можно привязать процесс к определенному набору ядер ЦП с помощью вызова sched_setaffinity()
. На странице руководства сказано:
Restricting a process to run on a single CPU also avoids the
performance cost caused by the cache invalidation that occurs when a process
ceases to execute on one CPU and then recommences execution on a different
CPU.
Что почти очевидно (или нет?). Что не так очевидно для меня, так это следующее:
Уменьшает ли привязка LWP к конкретному ЦП или узлу SMP трафик шины когерентности кэша? Например, поскольку процесс выполняется закрепленным, другие ЦП не должны изменять его частную память, поэтому только ЦП, которые являются частью одного и того же узла SMP, должны оставаться согласованными с кэшем.