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