R中的lapply计算中的非线性

时间:2015-02-10 12:37:23

标签: r performance lapply mclapply

我已经编写了相对庞大的功能(大约500行;包括一些数据节省,学习人工神经网络并进行预测)哪个输出是data.frames列表,但问题是输出应该是更大的列表(例如此列表中有30 000个data.frames)。 我以这种方式使用这个功能

output_list<-mclapply(c(1:30000),FUN,mc.cores=detectCores(),mc.preschedule=FALSE)

当我用它时

c(1:1000)

大约需要100秒,每秒10个data.frames。 但是,当我使用它时,让我们说

c(1:10000)

它减慢了戏剧性的速度,大约需要6500秒。随着向量c()的增加,它越来越慢。

我试图通过减少FUN(小矢量c()上的litle效果来修复它,但是在更大的计算上会出现同样的问题)

A还尝试通过创建for循环来修复它,计算200个案例并将它们放入空列表然后计算另外200个计算,加入这个空列表(它还不是空的,它涉及最后一次计算的帧)直到最后再一次。

但结果是一样的,它再次戏剧性地放慢了速度。 我想这个bug会出现在环境或内存问题的某个地方。 谁有经验呢?有什么建议怎么解决?计算仍然是一样的,所以我不明白为什么它适用于较小的那些,而对于较大的那些则慢。 谢谢你的建议。

0 个答案:

没有答案