разное поведение при использовании разного количества многоядерных работников

Я немного играюсь с моей программой (пытаюсь сделать многоядерные несколько частей), и я ' мы заметили, что «история процессора» выглядит немного иначе, зависит от того, сколько рабочих я запускаю. Кажется, что 2–4 рабочих создают «стабильный» рабочий процесс, однако 5–8 рабочих работают с ошибками (от нуля до максимума, см. Рисунки). Я должен отметить, что все запуски начинались с «плавной» максимальной мощности (например, 2 ядра только с 25%) и начали проявлять неустойчивое поведение только через минуту или около того. В чем дело? У меня есть 4-ядерный процессор, и вы думаете, что такое поведение может быть связано с этим фактом?

Надеюсь, вы увидите фотографии.

2 работника 2 workers

3 рабочих 3 workers

4 рабочих 4 workers

5 рабочих 5 workers

6 рабочих 6 workers

7 рабочих 7 workers

8 рабочих 8 workers

10
задан Roman Luštrik 4 September 2011 в 11:26
поделиться

1 ответ

Это классическое поведение на четырехъядерном процессоре с гиперпоточностью. R не выигрывает с гиперпоточностью, так как часто использует полное ядро для вычислений. Таким образом, если один физический процессор делает 2 логических, процессору приходится постоянно переключаться между обоими потоками, что объясняет закономерности.

Для R я отложил гиперпоточность на своем компьютере. Это, наоборот, не помогает. При работе только с одним потоком, как это обычно происходит в R, вы теряете производительность (максимум 12,5% вместо 25%).

11
ответ дан 4 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: