24小时热门版块排行榜    

查看: 3946  |  回复: 10

linzi610

新虫 (初入文坛)

[求助] 请问lammps高手,自己编译的lammps如何用mpirun单机多核运行? 已有1人参与

   我自己在ubuntu下编译lammps已经超过几十次上百次了,但是至今仍然没有找到多核并行运行的方法.如果是直接从网上下载的lammps,就可以用mpirun多核并行运行.以前由于用gpu加速,不需要cpu的多核运行,所以这个问题就一直没有去解决;但是现在换到在安卓手机上运行lammps,直接输出mpg视频查看结果,不可能使用gpu加速,所以cpu多核运行变得十分重要.我自己已经尝试了很多天了,仍然没有一点头绪,无论是改变编译宏选项还是改变package组件都无效;mpirun可以启动一般程序的任意多个的进程,但是只要换成自己编译的lammps程序,无论如何就都只有一个进程了,所以cpu无论多少核就只有一个核在运行lammps.如果谁帮我解决这个问题,我把我所有的分都给他,否则请版主扣掉我所有的分.谢谢.
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

哦紧迫看

新虫 (初入文坛)

2楼2017-05-28 23:42:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzi610

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 哦紧迫看 at 2017-05-28 23:42:53
安卓手机运行lammps?

安卓的终端模拟器chroot运行ubuntu,我已经用了好几年了.
3楼2017-05-30 00:07:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzi610

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 哦紧迫看 at 2017-05-28 23:42:53
安卓手机运行lammps?

因为用apt-get 下载的arm版的lammps版本比较老,而且不支持视频dump输出,所以只能自己编译的才行.无论是在电脑上还是在手机上,这个自己编译的无法多核运行的问题都一直存在着,我花了大量时间都没有解决这问题.
4楼2017-05-30 00:11:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jluchemlib

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
linzi610: 金币+5, ★★★很有帮助, 问题解决了,如果不是这位提示,我很久都找不到方向,实在是千头万绪. 2017-05-31 15:18:15
先装任何一个mpi软件,比如openmpi,装好之后在bashrc里设置环境变量,然后下载lammps源代码,进src里面打make mpi就可以了
5楼2017-05-31 08:31:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzi610

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by jluchemlib at 2017-05-31 08:31:21
先装任何一个mpi软件,比如openmpi,装好之后在bashrc里设置环境变量,然后下载lammps源代码,进src里面打make mpi就可以了

我问的不是怎样编译lammps,我已经在ubuntu下编译过无数遍了,包括编译GPU和CUDA的包和对多种显卡的支持.问题是自己编译的lammps只能用mpirun启动一个进程所以无法cpu多核运行,但是从网上下载的就可以多核运行.手机和电脑上好像mpich2和openmpi都装上了,不知道是不是两者冲突导致的.openmpi我的没有设置什么,可能是系统自带的.
6楼2017-05-31 10:45:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengfan

铁杆木虫 (正式写手)

引用回帖:
5楼: Originally posted by jluchemlib at 2017-05-31 08:31:21
先装任何一个mpi软件,比如openmpi,装好之后在bashrc里设置环境变量,然后下载lammps源代码,进src里面打make mpi就可以了

应该就是这样啊。并行计算的编译并不难。不过反馈一个信息,我之前用Ubuntu, 开始可以用多线程计算,后来无论mpirun设置用几个线程,最后只能用一个。原因至今不清楚。

发自小木虫Android客户端
XeTaL
7楼2017-05-31 11:07:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzi610

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by jluchemlib at 2017-05-31 08:31:21
先装任何一个mpi软件,比如openmpi,装好之后在bashrc里设置环境变量,然后下载lammps源代码,进src里面打make mpi就可以了

我发现我的ubuntu里的mpirun是用apt-get安装lammps时装上的libopenmpi里面的,而不是mpich2里面的.可能存在版本冲突问题.
8楼2017-05-31 11:08:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzi610

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by mengfan at 2017-05-31 11:07:35
应该就是这样啊。并行计算的编译并不难。不过反馈一个信息,我之前用Ubuntu, 开始可以用多线程计算,后来无论mpirun设置用几个线程,最后只能用一个。原因至今不清楚。
...

我一直用的都是并行编译,自己编译的lammps只能用一个线程的原因就是mpirun只能启动它的一个进程.你用几行c语言代码写一个长时间循环语句的小程序,都可以用mpirun启动它的任意多个进程,用top命令就可以看得出来,用网上下载的lammps程序也可以,但是只要换成自己编译的lammps程序,mpirun就无论如何只能启动它一个进程,所以只能使用单核.估计可能是openmpi的问题.
9楼2017-05-31 13:21:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jluchemlib

铁杆木虫 (正式写手)

【答案】应助回帖

引用回帖:
6楼: Originally posted by linzi610 at 2017-05-31 10:45:19
我问的不是怎样编译lammps,我已经在ubuntu下编译过无数遍了,包括编译GPU和CUDA的包和对多种显卡的支持.问题是自己编译的lammps只能用mpirun启动一个进程所以无法cpu多核运行,但是从网上下载的就可以多核运行. ...

只要你的openmpi或者mpich2是从官网上下源码包安装的,就没问题。你装lammps的时候想用哪个就调用哪个就可以了。觉得装这种软件还是不要用ubuntu自带的apt-get比较好
10楼2017-05-31 15:08:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 linzi610 的主题更新
信息提示
请填处理意见