r语言 - 并行处理数据分析 - 拆分比处理器内核多是否有好处



我正在使用朴素贝叶斯分类器来预测R中的一些测试数据。测试数据有>1,000,000,000 条记录,使用一个处理器处理所需的时间太长。我正在使用的计算机总共(只有(四个处理器,其中三个我可以腾出来运行我的任务(我可以使用所有四个处理器,但更愿意保留一个用于我需要做的其他工作(。

使用 foreachdoSNOW 包,并按照本教程进行操作,我设置并运行了内容。我的问题是:

我将数据集分为三个部分,每个处理器一个部分。将数据集拆分为 6、9 或 12 个部分有什么好处吗?换句话说,在更多的拆分与为每个处理器内核运行一个大块记录之间有什么权衡?

我在这里没有提供任何数据,因为我认为这个问题更具理论性。但是,如果需要数据,请告诉我。

从广义上讲,将其拆分为更多部分的优点是可以优化处理器的使用。

如果将数据集拆分为 3 个部分,每个处理器一个部分,则需要以下时间:

斯普利特 A - 10 分钟

斯普利特 B - 20 分钟

斯普利特 C - 12 分钟

您可以立即看到,您的两个处理器将在执行完整分析所需的大量时间内处于空闲状态。

相反,如果您有 12 个拆分,每个拆分需要 3 到 6 分钟才能运行,则处理器 A 可以在完成第一个剥离后拾取作业的另一个块,而不是空闲,直到运行时间最长的拆分完成。

相关内容

最新更新