mfix mpi并行死锁问题探究

目前还没找到具体原因,只能先记录一下。(问题原因找到了)

分别用ubuntu14.04和ubuntu16.04测试,用的是笔记本,笔记本为双核四线程,用2线程并行计算;发现ubuntu16.04会在0.28057s时刻出现死锁,而ubuntu14.04在0.28057s时刻则会出现掉线程的问题:

上面是ubuntu16.04

上面是ubuntu14.04

 

但是,ubuntu16.04如果继续计算,会在后面依然出现死锁的情况,而ubuntu14.04继续计算以后则不会出现问题。

 

对于新安装的win10系统,ubuntu只有16.04版本,无法再安装14.04,经过尝试,发现可以选择debian作为替代,商店里搜索WSL就能看到,看起来debian似乎更加稳定一些。所有编译工具也推荐都用命令安装的版本,并且由于debian默认python和ssh是不安装的,记得手动安装,下面这些安装命令依次执行即可:

sudo apt install gcc gfortran make g++
sudo apt install libopenmpi-dev openmpi-bin # For DMP
sudo apt-get install python #debian和ubuntu有时候默认不安装
sudo apt-get install ssh #debian默认不安装

 

---------------------------------------------------------------------------------------------------

2018.4.16

今天增大反应速率计算又出现掉线程的问题,于是在追踪问题的过程中发现一些技巧。

为了在一次掉线程以后快速复现问题,可以把dat里的RES_DT设置小一些,比如0.001。因为*.RES文件是用来给restart的时候用的,如果保存太大,restart的时候可能得从很久之前开始算。

通过反复restart,发现每次都在0.28s左右出现掉线程的问题,而且并没有不收敛相关错误。但是还是下意识把步长从0.0001改为0.00005,发现居然度过了那一段出问题的区间。问题解决!!

The devil is in the detail.

posted @ 2018-04-15 20:32  JayYin  阅读(1600)  评论(0编辑  收藏  举报