Вы не можете изменить распределение ядер между numa-узлами.
Узлы numa - это физические ограничения, связанные с тем, что у вас есть 2 сокета.
Numa - архитектура с неоднородной памятью, имеет штраф за доступ к памяти вне локального узла. Вы должны увидеть, как многопоточные ядра отображаются как «ядра» на том же узле numa, что и основные ядра.
Т.е., если у вас есть 9 ядер / узел numa и вы включили гиперпоточность (обычно это не выигрыш для производительности в большинстве ситуаций, поскольку гиперпоточные ядра крадут ресурсы у основных ядер, что приводит к большему «перебиванию»), ЕСЛИ ваши гиперпоточные процессы не являются частью та же программа и использует те же части кеша, что и основные ядра. Обычно люди рассматривают ядра как независимые ресурсы, а гиперпоточные ядра также обрабатываются независимо.
Для общих рабочих нагрузок на машинах, которые «загружены», гиперпоточность приведет к увеличению конкуренции за ресурсы и замедлит общую пропускную способность. Если ваша рабочая нагрузка такова, что все основные процессоры и процессоры Hyper-CPU выделены для одной и той же программы и работают с соответствующими потоками, то вы можете добиться более высокой производительности с помощью гиперпоточности.
Учитывая ваши вопросы, я бы действительно предложил отключить гиперпоточность, так как не похоже, что вы резервируете 1 узел numa для 1 приложения, где они могут совместно использовать локальную память и ресурсы.
Игнорирование вопроса о гиперпоточности - поскольку это в основном просто дополнительное усложнение при применении тех же правил, вы не можете перемещать процессоры между узлами, поскольку ядро процессора - это также физические объекты, которые физически расположены в одном чипе (узле numa) или другом.
Вы МОЖЕТЕ привязать процессы и потоки к одному узлу numa или другому, используя привязку к процессору - возможно, это то, что вы хотите?