【发布时间】:2014-02-28 20:08:10
【问题描述】:
我有大量描述大量气象站天气的数据文件。这些文件是每小时的,并且包含在按日期分隔的文件中。
例如:
20100101.csv
20100102.csv
20100103.csv
.
.
20140228.csv
我需要通过station聚合数据,然后写入磁盘。也就是说,对于每个天气文件,我需要提取站 i 的数据,然后将其写入磁盘。
输出:
station_001.csv
station_002.csv
.
.
station_999.csv
为了加快速度,我决定使用foreach 和doMC 包并行读取日常文件,并且我还通过站点并行聚合后将站点文件写入磁盘。
更具体地说,我使用foreach 读取文件并使用.combine="rbind" 组合它们(我有足够的内存在内存中创建一个巨大的数据集)。之后,我有另一个foreach 循环,我在其中按站对数据进行子集化,然后写入磁盘。我发现通过并行进行读/写,我体验到了非常好的速度提升。
我的问题是:并行读/写是个好主意吗?我确保不同的线程不会读取相同的数据文件或写入相同的站文件,但经过一番谷歌搜索,似乎并行化 i/o 任务可能不是一个好主意? (Example I found saying no to parallel Input/Output 和 post on R-bloggers showing parallel reads)
【问题讨论】:
标签: r foreach parallel-processing