在R中使用doParallel的foreach时,Windows Defender的CPU使用率非常高

时间:2019-06-26 22:08:48

标签: r doparallel parallel-foreach

我有一个基于Threadripper 1950X的工作站,该工作站具有16个内核和32个线程,并具有大量内存。在Windows 10上运行64位R 3.6.0(已修补),我经常使用doParallel库和foreach命令在R中运行并行代码,并经常将其设置为使用26-30个线程。

最近,我签出了任务管理器。当doParallel开始假脱机处理所有进程时,发现其CPU使用率上升并不令我感到惊讶。但是非常奇怪的是,Windows Defender(Microsoft的防病毒默认设置)也开始假脱机,并且非常激进地攀升至高达70%的使用率(列为Antimalware Service Executable)。这是我的意思的屏幕截图。 R代码完成后,Defender会返回到无关紧要的CPU使用率。

enter image description here

我在线阅读了有关Defender高CPU使用率的帖子,但这似乎与R中的并行操作紧密相关。我试图按照this之类的帖子来设置排除项,但这并没有改善问题。 / p>

我应该担心当我运行带有很多线程集的并行代码时Windows Defender经常挤占R吗?

1 个答案:

答案 0 :(得分:4)

我想我已经解决了。如果我有20-30个线程,我的代码将数千个临时文件创建到R的temp目录(在c:\ Users \ xxx \ Local \ Temp中)。我认为Windows Defender即使在SSD驱动器上也难以扫描每一个。我将temp目录添加到Defender的排除列表中,并在主文件夹层次结构中添加了一些输出目录,CPU使用率下降了,如此处所示。

enter image description here

我希望这对其他人有帮助,因为基本的Google搜索无法解决此问题。