bsh*_*hor 3 r parallel-foreach doparallel
我有一个基于 Threadripper 1950X 的工作站,具有 16 个内核和 32 个线程以及大量内存。在 Windows 10 上运行 64 位 R 3.6.0(已修补),我经常使用 doParallel 库和 foreach 命令在 R 中运行并行代码,经常将其设置为使用 26-30 个线程。
最近,我检查了任务管理器。随着 doParallel 开始对所有进程进行后台处理,我对 CPU 使用率上升并不感到惊讶。但非常奇怪的是,Windows Defender(Microsoft 的防病毒默认设置)也开始假脱机,而且非常积极,使用率攀升至 70%(它被列为反恶意软件服务可执行文件)。这是我的意思的截图。当 R 代码完成时,Defender 会恢复到不重要的 CPU 使用率。
我对后卫的CPU使用率很高的在线阅读的帖子,但这似乎非常依赖于并行的R.我试图设置排除按照像帖子操作这个,但它并不能提高的问题。
当我运行具有大量线程集的并行代码时,我是否应该担心 Windows Defender 会不断挤出 R?
我想我已经想通了。如果我有 20-30 个线程,我的代码会在 R 的临时目录(在 c:\Users\xxx\Local\Temp 中)创建数千个临时文件。我认为 Windows Defender 正在疯狂扫描每个,即使它在 SSD 驱动器上。我将临时目录添加到 Defender 的排除列表中,以及我的主文件夹层次结构中的一些输出目录,CPU 使用率下降了,如下所示。
我希望这对其他人有帮助,因为基本的 Google 搜索并不能解决这个问题。