linux双机连通找不到con1,Linux服务器崩溃 - 错误在反序列化(节点$ CON):错误的连接...

我运行Linux集群内中的R读码 - 该代码是复杂的(超过两千行代码),涉及超过40个R包和几百个变量。但是,它在Windows和R.

的Linux版本,我现在正在运行爱丁堡大学EDCF高性能计算集群上运行的代码都和代码并行运行。并行代码在DEoptim中调用,基本上,在初始化后,并行运行一系列函数,并将结果发送回DEoptim算法,并将其作为绘图和数据表保存在我自己的空间 - 重要的是代码运行和工作!

的代码模型区域的水文,我可以设置密码了我想要的任何时间内,模拟历史条件 - 从一天到30年。平行一个月,结果大约每隔70秒吐出一次,而DEoptim算法只是不断重新运行代码,改变输入参数,试图找到最佳参数集。

该代码似乎运行良好的一些运行,但最终崩溃。昨晚的代码完成了一个100组的运行没有问题了大约2个小时,但最终坠毁 - 它总是最终崩溃 - 错误代码:

Error in unserialize(node$con) : error reading from connection

我登录到该系统是一个16核服务器( 16个真正的核心)根据:

detectCores()

我要求8GB的2GB内存插槽。我试图在24内核的机器上运行这个内存大的内存请求(4个40GB的内存插槽),但它最终还是会崩溃。这段代码在Windows计算机上运行良好,并且在8台逻辑内核上并行运行数千个结果。

所以我相信代码是好的,但为什么它崩溃?它可能是一个记忆问题?每次调用它时,它都包含:

rm(list=ls())

gc()

或者它只是一个核心崩溃?我确实认为,如果两个内核试图同时写入同一个数据文件,可能会出现问题,但我暂时将其删除,并且仍然崩溃。有时会在几分钟后和其他几次后崩溃。我试图从并行代码中删除一个核心使用:

cl

但它仍然崩溃。

无论如何,该代码可以修改,因此它拒绝崩溃的输出,例如如果错误然后拒绝并继续!

或者,是否有修改代码来捕获为什么在所有发生的错误的方法吗?

我知道有很多其他序列化(节点$ con)和反序列化(节点$ con)错误帖子,但他们似乎没有帮助我。

我真的很感谢一些帮助。

谢谢。

+0

您可以尝试将有问题的代码包装到'tryCatch'中,并将结果和对象输出到文本/ .RData文件。 –

+0

我想知道如何使用tryCatch - 听起来是可能的。 –

+0

我创建了另一篇文章,试图了解如何使用tryCatch与我的代码http://stackoverflow.com/questions/33733102/how-to-use-trycatch-in-r-with-parallel-code –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值