gpt4 book ai didi

r - 并行读/写文件是个好主意吗?

转载 作者:行者123 更新时间:2023-12-02 07:30:41 25 4
gpt4 key购买 nike

我有大量描述大量气象站天气的数据文件。这些文件是每小时的,并且包含在按日期分隔的文件中。

例如:

20100101.csv
20100102.csv
20100103.csv
.
.
20140228.csv

我需要通过station聚合数据,然后写入磁盘。也就是说,对于每个天气文件,我需要提取站 i 的数据,然后将其写入磁盘。

输出:

station_001.csv
station_002.csv
.
.
station_999.csv

为了加快速度,我决定使用 foreachdoMC 包并行读取日常文件,并在聚合后将站文件写入磁盘由站并行。

更具体地说,我使用 foreach 读取文件并使用 .combine="rbind" 将它们组合在一起(我有足够的内存来创建一个巨大的数据集内存)。之后,我有另一个 foreach 循环,我在其中按站对数据进行子集化,然后写入磁盘。我发现通过并行进行读/写,我体验到了非常好的速度提升。

我的问题是:并行读/写是个好主意吗?我确保不同的线程不会读取相同的数据文件或写入相同的站文件,但经过一番谷歌搜索,似乎并行化 i/o 任务可能不是一个好主意? ( Example I found saying no to parallel Input/Outputpost on R-bloggers showing parallel reads )

最佳答案

性能专业版

  • 使用多线程可以提高多核机器的性能

性能保证

  • 从磁盘读取时,CPU 性能通常不是您的瓶颈。磁盘上的文件通常被写入尽可能多的连续 block 中。这意味着旋转磁盘上的指针不必移动那么远即可读取下一段。如果您并行执行任务,则指针必须反复移动才能从停止的地方继续。这意味着您的磁盘写入速度最终会变慢*。

    *固态硬盘可能没有这个问题(我对 SSD 了解不多,但我想它们根本不会受到上下文切换的影响)。

关于r - 并行读/写文件是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com