openmpi-3.0.1超线程报错问题
Posted JayYin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openmpi-3.0.1超线程报错问题相关的知识,希望对你有一定的参考价值。
先简单记录一下,虽然还有一些疑惑没有解决。
之前安装openmpi是用的命令安装,版本比较低,mfix并行总出现死锁问题,于是想看看是不是openmpi版本导致,虽然目前还未找到具体原因,但是先记录下踩到的坑。
下载openmpi最新版本:https://www.open-mpi.org/software/ompi/v3.0/
安装openmpi具体方法参见:http://www.cnblogs.com/platero/p/4182436.html
安装主要是这几个命令:
./configure --prefix="/usr/local/openmpi" make sudo make install
然后~/.bashrc中添加:
export PATH=$PATH:/usr/local/openmpi/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openmpi/lib/
最后执行命令:
sudo ldconfig
source ~/.bashrc
安装好以后并行运行mfix:
mpirun -np 8 ./mfixsolver -f clc.mfx
结果报错:
There are not enough slots available in the system to satisfy the 8 slots
Either request fewer slots for your application, or make more slots available for use.
电脑是6核12线程,之前没有出现这种问题。如果用低于6线程运行就没有问题,查了下,发现可以用--oversubscribe参数申请超线程,因此把命令写成:
mpirun --oversubscribe -np 8 ./mfixsolver -f clc.mfx
就可以了。具体参见:https://stackoverflow.com/questions/35704637/mpirun-not-enough-slots-available
但是问题就来了:
6核12线程对于mpi来说,可用线程到底是6线程还是12线程。低版本openmpi则没有这个问题。而且开启--oversubscribe参数后就开始频繁出现段错误,显然不是很好的选择。
暂时存疑。
还有就是,在ubuntu16.04上并行出现死锁问题的case,在ubuntu14.04上却一切正常,真的是无语~~
以上是关于openmpi-3.0.1超线程报错问题的主要内容,如果未能解决你的问题,请参考以下文章
错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段
springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段
Flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform(代码片段
newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段