【发布时间】:2025-11-30 11:50:02
【问题描述】:
我有一个简单的程序,它将一个数据集(一个 CSV 文件)分成 4 个块,读取每个块,进行一些计算,然后将输出附加在一起。把它想象成一个简单的 map-reduce 操作。处理单个块使用大约 1GB 的内存。我在四核 PC 上运行该程序,4GB 内存,运行 Windows XP。我碰巧使用 R 对其进行了编码,但我认为这无关紧要。
我编写了两个版本。一个版本按顺序处理每个块。另一个版本一次并行处理两个块。两个版本的完成时间几乎相同。
您希望在什么情况下看到这种性能结果?
我目前的假设是进程受内存性能的限制,但我不知道进一步调查此问题的最佳方法。有什么建议或猜测吗?
编辑:就磁盘而言,该程序不受 IO 限制。处理步骤将一大块 CSV 文件读入内存,搅动 5 分钟左右,然后将结果写回磁盘上的文件。文件输入和输出最多需要几秒钟。
【问题讨论】:
-
你使用的是什么 R 包? (例如 Rmpi?)
-
我正在使用 'snowfall' 包。
-
如果这仍然是一个实时问题,请向我们展示分析结果。否则,请发布更新或一些分析,并接受一些答案。
标签: performance memory r parallel-processing