> SMP архитектура до 8 процессов, NUMA до сотни с небольшим.
Простите, но Вы путаете яркое со сладким.
Есть три вида многопроцессорности: SMP (симметричная), AsMP (асимметричная) и MPP (массово-параллельная).
Есть три вида доступа к памяти: UMA (униформенный), NUMA (неуниформенный) и NonMA (нет доступа к чужой памяти, как на кластерах).
Теоретически возможны все девять вариантов сочетаний; естественно, одни используются чаще, другие реже.
Если рассмотреть обычный современный "однопроцессорный" писюк, то в нём есть куча процессоров: на жёстком диске, на сетевой карте, на видеокарте и даже в клавиатуре. Взаимодействие процессоров: AsMP (хотя на видеокарте м.б. несколько процессоров, взаимодействующих между собой по схеме SMP или MPP). Распределение памяти - NonMA (центральный процессор не может обратиться к памяти на брюхе жёсткого диска, а процессор на брюхе жёсткого диска не может обратиться к DIMM'ам); исключение - видеокарта, там NUMA (для PCI - в одну сторону для обеспечения доступа процессора к видеопамяти в режимах CGA/EGA/VGA; на AGP добавлен NUMA-доступ видеопроцессора в основную память).
Если брать "многопроцессорный" писюк, то "много" - это два одинаковых равноправных процессора (SMP) с общей памятью (UMA); видимо, это Вы имели в виду под словом "SMP". Естественно, при большом числе процессоров коллизии при одновременном доступе в память (при промахах при обращении в кэш) станут узким местом. Наращивание кэшей тоже ограничено, т.к. все операции записи в память (включая операции со стеком) приходится аппаратно доводить до всех кэшей всех процессоров.
Система SMP+UMA гораздо лучше масштабируется для RISC-процессоров, т.к. у них гораздо больше регистров, и потому обращения в память гораздо реже. Будь прокляты дебилы, которые держатся за писбюковую совместимость по командам с процессором тридцатилетней давности!!!
Производительность системы SMP+UMA можно было бы поднять при использовании многобанковой памяти (большое количество модулей памяти), если чипсет подобно Ethernet-коммутатору может одновременно рассылать запросы в разные банки памяти. К сожалению, AFAIK, писюковые системы имеют общую шину (адреса и данных) ко всем модулям памяти, что не позволяет наращивать производительность подсистемы памяти. Впрочем, первый шаг в этом направлении сделан - двухканальная память.
Однако, если все процессоры станут активно обращаться в один банк памяти (например, в код разделяемой библиотеки), то именно этот банк может оказаться "тормозным элементом" системы. Хотя и против этого тоже есть методы.