Вы просите о возможных изменениях в ОС, поэтому я предполагаю, что за этими усилиями стоит значительная команда инженеров.
Есть также несколько уточняющих сведений, которые помогут определить параметры проблемы:
Сколько нужно IPC (межпроцессное взаимодействие)?
Они действительно должны быть потоками или процессами?
Если они являются процессами, это нормально, если они должны общаться друг с другом через сокеты, а не с помощью общей памяти?
Что такое архитектура памяти? Вы прямой SMP с 1024 ядрами, или здесь есть какая-то другая NUMA (Неоднородная архитектура памяти) или MMP? Каковы ваши таблицы страниц?
Зная только самую маленькую информацию о системах Azul, я бы предположил, что у вас очень мало IPC, и что простая модель «запустить одно ядро на ядро» может действительно сработать. Если процессам необходимо общаться друг с другом, они могут создавать сокеты и таким образом передавать данные. Ваше оборудование поддерживает эту модель? (Скорее всего, в конечном итоге вам понадобится один IP-адрес на ядро, и при 1024 IP-аддерах это может быть проблематично, хотя все они могут быть NAT, и, возможно, это не такая уж большая проблема). Конечно, эта модель может привести к некоторым неэффективным действиям, таким как дополнительные таблицы страниц, и значительному увеличению объема оперативной памяти, и может даже не поддерживаться вашей аппаратной системой.
Даже если «1 ядро на ядро» не работает, вы можете запустить ядро 1024/8, и все будет в порядке, позволяя каждому ядру контролировать 8 физических процессоров.
Тем не менее, если вы хотите запустить 1 поток на ядро в традиционной машине SMP с 1024 ядрами (и только несколькими физическими процессорами), то я ожидаю, что старомодный планировщик O (1) - это то, что вам нужно , Вполне вероятно, что ваш процессор [0] завершит работу на ядре почти на 100% и будет выполнять обработку прерываний, но это прекрасно для этого случая использования, если вам не требуется более одного ядра для обработки вашей рабочей нагрузки.