2

Я делаю статистический анализ с использованием R на операционной системе Ubuntu 15.10. Мой сценарий R занимает очень много времени. Около 2 - 3 часов.

Тем временем я проверил загрузку своих процессоров. Я только заметил, что все процессоры почти простаивают, кроме одного. На рисунке ниже, как вы можете видеть, только CPU 8 находится на 100%.

Почему ядро Linux не уравновешивает рабочую нагрузку на всех процессорах?

3 ответа3

4

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

Проблема здесь в том, что рассматриваемый скрипт R не был написан как многопоточный.

0

Если ваш процесс уступает mapReduce, вы можете разбить скрипт на части и запустить каждый фрагмент на другом процессоре.

-1

Не kernel решает, как использовать CPU . Если ваш скрипт создан для многопоточности, то только он будет использовать другие потоки.

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