并行处理数据分析 - 比处理器内核更多的拆分有好处吗?

Parallel processing data analysis - Is there a benefit to having more splits than processor cores?

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

使用 foreachdoSNOW 包,并遵循 this 教程,我已经设置好并 运行ning。我的问题是:

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

我这里没有提供任何数据,因为我觉得这个问题比较理论化。但如果需要数据,请告诉我。

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

如果数据集被分成 3 部分,每个处理器一个,它们需要以下时间:

分段 A - 10 分钟

分段 B - 20 分钟

拆分 C - 12 分钟

您可以立即看到您的两个处理器将在进行完整分析所需的很长一段时间内处于空闲状态。

相反,如果您有 12 个拆分,每个拆分需要 3 到 6 分钟才能完成 运行,那么处理器 A 可以在完成第一个作业后继续处理另一块作业,而不是空转直到最长的-运行ning分裂结束。