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.
mfix mpi并行死锁问题探究的更多相关文章
- 【MPI学习2】MPI并行程序设计模式:对等模式 & 主从模式
这里的内容主要是都志辉老师<高性能计算之并行编程技术——MPI并行程序设计> 书上有一些代码是FORTAN的,我在学习的过程中,将其都转换成C的代码,便于统一记录. 这章内容分为两个部分: ...
- SQL Server并行死锁案例解析
并行执行作为提升查询响应时间,提高用户体验的一种有效手段被大家所熟知,感兴趣的朋友可以看我以前的博客SQL Server优化技巧之SQL Server中的"MapReduce", ...
- 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
基于都志辉老师<MPI并行程序设计模式>第14章内容. 前面接触到的MPI发送的数据类型都是连续型的数据.非连续类型的数据,MPI也可以发送,但是需要预先处理,大概有两类方法: (1)用户 ...
- C++程序中调用MPI并行的批处理命令
问题来源:在使用MPI时,将程序并行实现了,运行时需要在dos窗口下输入批处理命令,以完成程序的执行. 如:mpiexec -localroot -n 6 d:/mpi/pro.exe 但每次这样挺麻 ...
- 【MPI学习7】MPI并行程序设计模式:MPI的进程组和通信域
基于都志辉老师MPI编程书中的第15章内容. 通信域是MPI的重要概念:MPI的通信在通信域的控制和维护下进行 → 所有MPI通信任务都直接或间接用到通信域这一参数 → 对通信域的重组和划分可以方便实 ...
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
相关章节:第13章组通信MPI程序设计. MPI组通信与点到点通信的一个重要区别就是:组通信需要特定组内所有成员参与,而点对点通信只涉及到发送方和接收方. 由于需要组内所有成员参与,因此也是一种比较复 ...
- 【MPI学习4】MPI并行程序设计模式:非阻塞通信MPI程序设计
这一章讲了MPI非阻塞通信的原理和一些函数接口,最后再用非阻塞通信方式实现Jacobi迭代,记录学习中的一些知识. (1)阻塞通信与非阻塞通信 阻塞通信调用时,整个程序只能执行通信相关的内容,而无法执 ...
- 【MPI学习3】MPI并行程序设计模式:不同通信模式MPI并行程序的设计
学习了MPI四种通信模式 及其函数用法: (1)标准通信模式:MPI_SEND (2)缓存通信模式:MPI_BSEND (3)同步通信模式:MPI_SSEND (4)就绪通信模式:MPI_RSEND ...
- MPI 并行奇偶交换排序 + 集合通信函数 Sendrecv() Sendvecv_replace()
▶ <并行程序设计导论>第三章的例子程序 ● 代码 #include <stdio.h> #include <mpi.h> #include <stdlib. ...
随机推荐
- 【更多教程关注公众号全要买】1-2 Disruptor与BlockingQueue压力测试性能对比
JDK所提供的BlockingQueue替换成Dis
- 766. Toeplitz Matrix斜对角矩阵
[抄题]: A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now ...
- 532. K-diff Pairs in an Array绝对值差为k的数组对
[抄题]: Given an array of integers and an integer k, you need to find the number of unique k-diff pair ...
- SQL 数据库 学习 002 如何启动 SQL Server 软件
如何启动 SQL Server 软件 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果你还没有下载 SQL Serv ...
- 目录、目录项、文件名、inode、软硬链接的关系
对于Unix系列的操作系统,大多都有v节点.但是对于linux来说,只有通用的i节点,却没有v节点. 下面来探讨一下,linux下的i节点. linux中,文件查找不是通过文件名称来查找的.实际上是通 ...
- selenium+phantomjs解析JS
背景知识: PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, J ...
- 在aspx页面中使用三元表达式
第一种使用方法:判断GridView绑定的数据是否为空 用GridView或其他控件绑定数据的时候,有时候需要判断从数据库中获取的值是否是空值,然后显示相应的内容,如果在后置代码中写的话只有是在Row ...
- Linq 左连接 left join
Suppose you have a tblRoom and tblUserInfo. Now, you need to select all the rooms regardless of whet ...
- HackOne
使用 weight 属性实现视图的居中显示 一.在开发中有时候会遇到将一个控件在父控件居中显示.但是如果你直接用margin_*来进行限制的话就可能造成对于不同的型号的手机又不同显示的格式. 所以就可 ...
- Nginx配置 简单写了个
#user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_l ...