Очень высокая загрузка ЦП Защитником Windows при использовании foreach doParallel в R - PullRequest
2 голосов
/ 27 июня 2019

У меня есть рабочая станция на базе Threadripper 1950X с 16 ядрами, 32 потоками и большим объемом памяти. Запуская 64-битную версию R 3.6.0 (исправлена) в Windows 10, я часто запускаю параллельный код в R, используя библиотеку doParallel и команду foreach, часто настраивая ее на использование 26-30 потоков.

Недавно я проверил диспетчер задач. Когда doParallel начал спулингировать все свои процессы, я не удивился, увидев, как увеличивается загрузка его процессора. Но очень странно, что Защитник Windows (по умолчанию для антивируса Microsoft) тоже начал подкачивать и очень агрессивно, достигая 70% использования (он указан как Исполняемый файл службы защиты от вредоносных программ). Вот скриншот того, что я имею в виду. Когда код R завершается, Защитник возвращается к незначительному использованию процессора.

enter image description here

Я читал сообщения в Интернете о высокой загрузке ЦП Защитником, но это кажется чрезвычайно связанным с параллельными операциями в R. Я пытался установить исключения в соответствии с сообщениями, такими как это , но это не улучшает вопросы .

Стоит ли беспокоиться, что Защитник Windows постоянно вытесняет R, когда я запускаю параллельный код с множеством установленных потоков?

1 Ответ

4 голосов
/ 27 июня 2019

Я думаю, я понял это.Мой код создает тысячи временных файлов во временный каталог R (в c: \ Users \ xxx \ Local \ Temp), если у меня 20-30 потоков.Я думаю, что Защитник Windows сходил с ума, сканируя каждое из них, даже если оно находится на диске SSD.Я добавил временный каталог в список исключений Защитника, а также некоторые выходные каталоги в моей основной иерархии папок, и загрузка ЦП значительно снизилась, как можно увидеть здесь.

enter image description here

Я надеюсь, что это полезно для других, потому что основной поиск Google не решает эту проблему.

...