Это несколько общий вопрос, за который я прошу прощения, но я не могу создать пример кода, воспроизводящий поведение. Мой вопрос таков: я оцениваю большой набор данных (~ 11 миллионов строк с 274 измерениями), разбивая набор данных на список кадров данных, а затем запуская функцию оценки на 16 ядрах 24-ядерного сервера Linux с использованием mclapply . Каждый фрейм данных в списке назначается порожденному экземпляру и оценивается, возвращая список фреймов данных прогнозов. Во время работы mclapply различные экземпляры R проводят много времени в непрерывном спящем режиме, больше, чем они тратят на работу. Кто-нибудь еще сталкивался с этим, используя mclapply? Я новичок в Linux, с точки зрения ОС это имеет смысл? Спасибо.
Ядра mclapply проводят много времени в непрерывном сне
Ответы (1)
Вы должны быть осторожны при использовании mclapply для работы с большими наборами данных. Легко создать слишком много рабочих для объема памяти на вашем компьютере и объема памяти, используемого вашими вычислениями. Трудно предсказать требования к памяти из-за сложности управления памятью в R, поэтому лучше всего тщательно отслеживать использование памяти с помощью таких инструментов, как «top» или «htop».
Вы можете уменьшить использование памяти, разделив свою работу на большее количество, но меньших задач, поскольку это может уменьшить объем памяти, необходимой для вычислений. Я не думаю, что выбор предварительного планирования сильно влияет на использование памяти, так как mclapply никогда не будет разветвлять более mc.cores
воркеров за раз, независимо от значения mc.prescheduling
.
Rprof
или аналогичный инструмент для отслеживания многоядерных процессов, чтобы увидеть, какие операции занимают много времени. - person Carl Witthoft   schedule 05.02.2014