仅当在mlr中使用parallelMap时发生静默崩溃

仅当在mlr中使用parallelMap时发生静默崩溃,r,fork,mlr,mclapply,R,Fork,Mlr,Mclapply,我正在运行一个mlr基准测试,大约有12名学员。当我不使用parallelMap时,我的代码运行没有任何问题,但只要我添加并行化,它就会无声地崩溃,总是在同一点上,即使只有2个内核 我认为它一定是内存不足了,所以我重新构造了我的代码,以便尽可能少地使用内存 设定种子,然后一次只对一名学员进行基准测试 在嵌套函数中放置基准调用,以便释放从基准返回的对象使用的内存 然而,这并没有帮助。它总是在调整随机林变量重要性过滤器时崩溃,但在此之前它成功地对随机林进行了基准测试。以下是相关的代码片段: para

我正在运行一个mlr基准测试,大约有12名学员。当我不使用parallelMap时,我的代码运行没有任何问题,但只要我添加并行化,它就会无声地崩溃,总是在同一点上,即使只有2个内核

我认为它一定是内存不足了,所以我重新构造了我的代码,以便尽可能少地使用内存

  • 设定种子,然后一次只对一名学员进行基准测试
  • 在嵌套函数中放置基准调用,以便释放从基准返回的对象使用的内存
  • 然而,这并没有帮助。它总是在调整随机林变量重要性过滤器时崩溃,但在此之前它成功地对随机林进行了基准测试。以下是相关的代码片段:

    parallelStart(mode="multicore", cpus=2, level="mlr.resample", show.info = TRUE, logging=TRUE, storagedir='/home/annette/Experiments/Logs_new')
    
    
    
        set.seed(24601, "L'Ecuyer")
        cox.filt.rsfrc.lrn = makeTuneWrapper(
                              makeFilterWrapper(
                                    makeLearner(cl=base_learner, id = "cox.filt.rfsrc", predict.type="response"), 
                                    fw.method="randomForestSRC_importance",
                                    cache=TRUE
                              ), 
                              resampling = inner, 
                              par.set = makeParamSet(makeNumericParam("fw.perc", lower=0.01, upper=0.5)), 
                              control = makeTuneControlRandom(maxit=20),
                              show.info = TRUE)
        bmr = benchmark(cox.filt.rsfrc.lrn, surv.task, outer, surv.measures, show.info = TRUE, models=TRUE, keep.extract=FALSE)
    
    日志中没有什么不寻常的地方。在此返回之前对gc()的最后一次调用:

    Garbage collection 55 = 23+3+29 (level 2) ... 
    110.3 Mbytes of cons cells used (61%)
    27.2 Mbytes of vectors used (14%)
    
    如果我只运行RF varimp滤波器并进行并行化,它就会成功。我已尝试将以下内容添加到.Renviron,但没有帮助:

    R_NSIZE = 100M
    R_VSIZE = 50M
    
    有谁能建议我如何解决这个问题,或者至少我如何能找到更多关于哪里出了问题的信息

    编辑:

    多亏了下面@pat-s的评论,我意识到R进程并没有崩溃,而是处于闲置状态。因此,我将它们全部删除,并将一条错误消息写入输出文件-每次都是相同的:

    Mapping in parallel: mode = multicore; level = mlr.resample; cpus = 12; elements = 4.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Error in extractSubList(iter.results, "measures.train", simplify = "rows") : 
      Assertion on 'xs' failed: Must be of type 'list', not 'NULL'.
    Calls: apply ... extractSubList -> assertList -> makeAssertion -> mstop
    Execution halted
    

    你在日志里看到什么了吗?你说的“撞车”到底是什么意思?你说这只发生在你开始第二次射频学习后,即第一次就可以了?我认为这应该成为Github上parallelMap的一个问题。不,日志中没有错误消息。当我说“崩溃”时,我的意思是Rscript程序停止,没有消息-没有完成或退出,什么都没有。我只与1名学员或全部12名学员一起运行过。当我用所有12个来运行它时,它会在#8上崩溃。我将在Github上发布一个问题。听起来类似吗?我怀疑parallelMap有问题。我肯定xgboost和parallelMap有问题,以至于我不得不停止使用它。看,我的评论在最后是正确的。事实上,是的,这听起来确实像是我的问题。我只是做了ps-A,发现有几十个R进程仍然存在,但CPU时间为0。我一直在用top,所以没有看到它们,以为它们已经死了。你在日志中看到什么了吗?你说的“撞车”到底是什么意思?你说这只发生在你开始第二次射频学习后,即第一次就可以了?我认为这应该成为Github上parallelMap的一个问题。不,日志中没有错误消息。当我说“崩溃”时,我的意思是Rscript程序停止,没有消息-没有完成或退出,什么都没有。我只与1名学员或全部12名学员一起运行过。当我用所有12个来运行它时,它会在#8上崩溃。我将在Github上发布一个问题。听起来类似吗?我怀疑parallelMap有问题。我肯定xgboost和parallelMap有问题,以至于我不得不停止使用它。看,我的评论在最后是正确的。事实上,是的,这听起来确实像是我的问题。我只是做了ps-A,发现有几十个R进程仍然存在,但CPU时间为0。我一直在用top,所以没有看到它们,以为它们已经死了。