3

Я обеспокоен тем, что установка нечетного числа ядер ЦП может снизить производительность или стабильность. Есть ли ситуации, когда это могло бы быть правдой?

1 ответ1

5

Что касается стабильности: я не могу придумать, по какой причине нечетное число менее стабильно, чем четное. Я провел эксперимент в колледже, где я запустил многопоточную программу (на языке C) с высокой вычислительной мощностью на виртуальной машине, изменил число ядер с 1 до 8 и измерил время выполнения процесса. Результаты были в основном линейными, если процесс сконфигурирован так, чтобы в полной мере использовать количество ядер. Я не могу придумать причину, по которой у гостевой ОС также возникнут проблемы, и не должно быть никаких гостевых процессов, поскольку они получают процессорное время от гостевой ОС.

Производительность может быть немного лучше, если вы будете придерживаться четных чисел, поскольку некоторые архитектуры процессоров предназначены для совместного использования кэша между двумя ядрами. Следовательно, нечетное ядро, используемое виртуальной машиной, должно будет делиться своим кэшем с хостом. Но даже это ненадежная теория, поскольку само программное обеспечение виртуальных машин никогда не гарантирует получение одинаковых ядер и кеша между временными интервалами. На данный момент мы расщепляем волосы. Например, если у вас 4-ядерный хост, и вы не можете решить, отдавать ли 2 или 3 ядра виртуальной машине, чуть менее оптимальное нечетное число 3 все равно будет работать быстрее, чем виртуальная машина 2. В этом примере вы также можете назначить 4 ядра для виртуальной машины. Операционная система хоста будет выделять только те временные интервалы, которые она может себе позволить, поэтому, пока вы не выполняете одновременно огромные процессы на хосте, виртуальная машина должна работать нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .