我不知道这个问题是否与dada2有关。我猜它不是,但我无法重现它。
我正在尝试使用dada2的Jupyter笔记本中的mclapply
库中的parallel
。并行作业运行,虽然它完成内核的时刻就死了,我无法重启它。在R终端内运行相同的工作流程没有问题。
在小型数据集上运行它没有任何问题:
library(dada2)
library(parallel)
derepFs <- mclapply('seqs/test_f.fastq', derepFastq)
derepFs
运行相同的工作流但是使用完整的数据集(对不起,我无法在这里提供它,它太大了,而且不公开)导致内核死亡,这让我觉得它是一个内存问题,在Jupyter环境之外运行它没有问题。使用lapply
运行此操作没有任何问题。此外,尝试在具有更多内存的AWS实例上运行此操作会导致相同的错误。内核死时的终端输出是:
Error in poll.socket(list(sockets$hb, sockets$shell, sockets$control), :
Interrupted system call
Calls: <Anonymous> -> <Anonymous> -> poll.socket -> .Call
Execution halted
监控内存显示它永远不会变得非常高~200MB。所以我的问题是,如果它不是记忆它可能是什么?我意识到可能很难回答这个问题,尽管我说我不能发布完整的数据集。 R版本3.2.2,Jupyter版本1.0.0,Dada2版本0.99.8,OSX 10.11.4