Сокращение времени выполнения при недостаточной подписке на Google Cloud - PullRequest
0 голосов
/ 12 июня 2018

У меня есть исполняемый файл, поддерживающий многопоточность, и я пытаюсь запустить его в Google Cloud.Я зарезервировал 8 VCPU и выполняю работу, используя 8 потоков.Допустим, я получаю время выполнения у.Теперь я зарезервировал 16 VCPU, но выполняю работу только с использованием 8 потоков, и время выполнения x равно x.Что я заметил, так это то, что х почти на 15-20% меньше, чем у.Почему я получаю это преимущество в производительности, когда резервирую больше VCPU, но использую меньше потоков?

Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

На Google Cloud Platform производительность одного виртуального процессора не равна одному физическому ядру.Более того, один виртуальный процессор == 1 гиперпоток == 1/2 физического ядра.

При гиперпоточности одно физическое ядро ​​отображается в операционной системе как два процессора, что позволяет выполнять параллельное планирование двух процессов на ядро.

Таким образом, при использовании 16 виртуальных ЦП означает, что у вас 16 гиперпоток и 8 физических ядер, тогда как 8 виртуальных ЦП поддерживаются 4 физическими ядрами и имеют 8 гиперпотоков.Это означает, что при использовании 16 виртуальных ЦП у вас больше вычислительной мощности по сравнению с 8 виртуальными ЦП, что также отражает выигрыш в производительности, который вы получаете.

Эта документация в StackOverflow , Блог и Обсуждения в Группе Google - хорошая статья по аналогичной теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...