通过服务器中的不同目录使用并行处理(parLapply)循环(读取和保存)

时间:2019-06-06 04:59:03

标签: r parallel-processing lapply doparallel

我是R中并行处理的新手,并且一直在尝试一些方法来运行大型模型。首先,由于内存不足(我假设它是RAM)无法继续该过程,因此该模型无法在我的PC上运行。

因此,我尝试在内存更高的服务器上执行此操作,但是由于某种原因,我设置代码的方式无法正常工作。

我需要用普通字执行此代码:我需要在存储在不同目录中的美国29个州(例如,model,{{1 }},E:/server/states/ar等)。每个状态包含30个文件,这些文件的命名方式完全相同(即E:/server/states/caE:/server/states/pafile1,...,file2)。这些文件是我的模型用来执行其操作并将输出存储在数据帧中的输入,我稍后将其另存为csv。

我已经能够使我的代码适应使用并行处理(parLapply)运行,但仅适用于单个状态。如果没有并行处理,则在单个状态下运行模型大约需要10个小时。使用并行处理(parLapply),只需要一个多小时。

我尝试过的事情以及想要得到的东西:我正在寻找一种方法,可以通过遍历不同目录,读取每个州的信息,使用此信息来运行我的模型并将输出另存为仅用于读取输入的目录中的csv(尽管只要将它们命名为不同的名称,我在哪里保存输出就没有关系)。

我尝试了以下代码的几种组合,但是似乎出现了问题:我设法遍历目录,但实际上无法从这些目录中读取文件,而只能从第一个工作目录中读取文件。

这很奇怪,因为我能够将输出存储在不同的目录中,所以我知道这不是遍历目录的问题(我实际上怀疑这与定义并行集群的地方​​有关)。顺便说一句,存储在不同目录中的输出与仅从file3中的第一个目录使用30个文件(输入)获得的输出相同。这意味着该代码仅从第一个目录读取30个文件,而没有其他内容。

这里的任何想法将不胜感激。

file30

0 个答案:

没有答案