R脚本耗尽内存-Microsoft HPC群集

R脚本耗尽内存-Microsoft HPC群集,r,hpc,rscript,R,Hpc,Rscript,我有一个包含以下源代码的R脚本: genofile<-read.table("D_G.txt", header=T, sep=',') genofile<-genofile[genofile$"GC_SCORE">0.15,] cat(unique(as.vector(genofile[,2])), file="GF_uniqueIDs.txt", sep='\n') 但一切都没有改变 我尝试了32位和64位的Rscript 2.15.0,但没有成功。数据集本身应该适合一个节

我有一个包含以下源代码的R脚本:

genofile<-read.table("D_G.txt", header=T, sep=',')
genofile<-genofile[genofile$"GC_SCORE">0.15,]
cat(unique(as.vector(genofile[,2])), file="GF_uniqueIDs.txt", sep='\n')
但一切都没有改变


我尝试了32位和64位的Rscript 2.15.0,但没有成功。

数据集本身应该适合一个节点的内存,这并不意味着在对其执行分析时也意味着它适合内存。通常,分析会导致数据复制。此外,一些低效的编程也会增加内存使用。设置开关和限制R的内存使用只会让事情变得更糟。它不限制实际内存使用量,而是限制最大内存使用量。而且使用32位操作系统总是一种内存方面的想法,因为使用32位操作系统的单个进程可以寻址的最大内存小于4GB


如果没有更多的细节,就很难进一步帮助您解决这个问题。一般来说,我建议将数据集分割成越来越小的部分,直到成功为止。我假设您的问题是令人尴尬的并行问题,进一步切割数据集不会改变输出。

看起来这样的工作不需要集群。在这种情况下,您可以读取文件并逐行过滤它。但是,如果您需要加快处理速度,那么您可能需要按照Paul的建议,将文件分割成不同的块,并在不同的节点上处理它们。当然,请添加一些代码,说明如何在R中启动集群并将作业发送到节点。我认为这会很有帮助。谢谢@DrDom,我终于拆分了文件(请在Paul的回答下查看我的评论)。这就是我的想法:-我修改了脚本,允许在命令行上指定输入/输出文件。-将输入文件拆分为10个约500 MB的块-在Microsoft HPC作业管理器下定义了一个扫描任务,该任务在不同的物理节点上为每个输入文件启动一个单独的R实例。现在一切都很好。谢谢!
--max-memory=1GB