Это, вероятно, не тот ответ, который вы хотите услышать, но это зависит от :
- Добавление сокета означает увеличение общей пропускной способности памяти.
- Добавление сокета означает, что некоторая память будет работать медленнее (например, если доступ к памяти, подключенной к CPU0, осуществляется из CPU1)
- Добавление сокета для совершенно нового процессора также означает добавление полноразмерного кэша.
- И, конечно же, это также означает удвоение количества ядер.
Это также означает, что:
- Кэши обычно не передаются. (двухъядерный процессор с одним сокетом, вероятно, будет разделять попадания в кеш L2 или L3). Процессы, мигрирующие от ядра к ядру, которые могут оказаться на неправильном процессоре, могут пострадать
Те же принципы справедливы для двухъядерных и двухъядерных процессоров. Раньше пропускная способность памяти была большей проблемой, поэтому два двухъядерных ЦП были бы предпочтительнее одного четырехъядерного ЦП, если вы делаете такие вещи, как умножение больших матриц.
Где это оставляет нас?
Что ж, для среднего пользователя настольного компьютера разница в производительности не настолько велика, чтобы о ней беспокоиться. Цена или PCIe дорожки это другое дело. Если вам нужно больше линий PCIe, тогда вам нужны системы с двумя сокетами. Если деньги важны, придерживайтесь одного сокета (и процессора с удвоенным количеством ядер).
¹ По крайней мере, в наши дни, когда контроллер памяти находится на CPU или APU, умирает. В былые времена он был на северном мосту.
² Распространен в HPC с матрицами, значительно превышающими размер любого кеша.