24小时热门版块排行榜    

查看: 3184  |  回复: 12
本帖产生 1 个 QC强帖 ,点击这里进行查看

ghcacj

荣誉版主 (著名写手)

阿超

优秀版主

[交流] 【ghcacj个人文集】单机环境下安装openmpi使用Orca并行运算的方法介绍已有7人参与

Orca是个很不错的量化软件,这个不用多说,跟高斯很像、上手很快、输入输出软件一目了然、计算速度快,这些都是它的优点,但是它也有个Linux软件的通病,就是,如果你不安装mpi类的程序,Orca就没法进行并行计算,不管你的任务是多么的大,不管你的电脑CPU有多少个核、有多少个CPU,一样是只选择一个CPU的一个核,一直这么算下去,效率非常得低。所以如果你想使用Orca好好做一些东西,安装mpi是必须的。
       好在Orca是免费提供mpi版本的,并且支持mpi的模块逐渐增多,在没有mpi的环境下,他们仍然是单核运行,当你的系统处于mpi环境下,有mpi版本的模块会自动按照你分配的CPU资源进行并行运算,下面我就简单介绍下在单机环境下安装openmpi,并调试运行Orca并行运算的步骤。
       因为我本身不是做量化计算的,主要利用Orca计算些电荷,所以不是很专业,还望大家见谅。采用的单机系统是Ubuntu 10.04 LTS,因为是Ubuntu,所以安装openmpi过程变的简单了许多,之前网上很多安装调试openmpi的方法看的让人头疼也无法学会如何安装,而采用Ubuntu软件源自动安装openmpi,就轻松许多,很容易就安装成功,而如果使用源码包进行编译安装,目前我还没琢磨清楚,不过有一点必须知道,就是openmpi所需要的lib文件必须齐全,不然会出现计算运行到一半时会暂停报错的情况。
       采用新立得软件管理器,搜索mpi,会找到一些和openmpi相关的文件,注意,安装以下几个即可:
mpi-default-dev      openmpi-checkpoint
mpi-default-bin       openmpi-doc
libopenmpi1.3         openmpi-bin
openmpi-common   libopenmpi-dev
       安装完毕后,系统默认的会安装在/usr路径下,我们需要配置环境变量,在用户目录下,我们打开.bashrc文件,输入以下三行内容:
export MPI_HOME=/usr
export PATH=$PATH:$MPI_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPI_HOME/lib
这样,在单机环境下,就完成了配置(关于很多人提到的machinefile,这个只有在集群时才用的到。)
然后我们找个例子进行测试,分别用一个核,两个核,三个核和四个核来完成同一个计算,计算文件如下:
# Test a simple DFT calculation
! RKS B3LYP/G 6-311G** Opt Grid4
! PAL2
* xyz 0 1
C  -0.56591643   -0.41685185    0.00007236
C   0.83548351   -0.41692196    0.00050137
C   1.53624443    0.79669073   -0.00006381
C   0.83560543    2.01037354   -0.00105877
C  -0.56579451    2.01044365   -0.00148574
C  -1.26655543    0.79683096   -0.00092082
H  -1.10096295   -1.34347207    0.00050287
H   1.37043694   -1.34359572    0.00125995
H   2.60624438    0.79663719    0.00026331
H   1.37065195    2.93699376   -0.00149182
H  -1.10074794    2.93711741   -0.00224291
H  -2.33655538    0.79688450   -0.00124699
*  
注意:文件中第3行,这里如果没有这行,就是单核计算,如果是PAL2、PAL3直到PAL8,就是采用对应的CPU进行并行计算,详情请参见Orca用户手册第23页。文件中采用的是闭壳层,B3LYP泛函,6-311G(d,p)基组,对一个苯环进行的DFT优化计算,计算的mulliken电荷结果四种计算方式结果一致,并且和采用高斯计算的结果基本一致:
Gaussian计算结果和Orca各计算方式结果对比
元素
    Gaussian     NonPAL       PAL2        PAL3       PAL4
C  -0.0944      -0.0945      -0.0945    -0.0945    -0.0945
C  -0.0944      -0.0945      -0.0945    -0.0945    -0.0945
C  -0.0945      -0.0946      -0.0946    -0.0946    -0.0946
C  -0.0944      -0.0945      -0.0945    -0.0945    -0.0945
C  -0.0944      -0.0945      -0.0945    -0.0945    -0.0945
C  -0.0945      -0.0946      -0.0946    -0.0946    -0.0946
H   0.0944       0.0945        0.0945     0.0945     0.0945
H   0.0944       0.0945        0.0945     0.0945     0.0945
H   0.0944       0.0945        0.0945     0.0945     0.0945
H   0.0944       0.0945        0.0945     0.0945     0.0945
H   0.0944       0.0945        0.0945     0.0945     0.0945
H   0.0944       0.0945        0.0945     0.0945     0.0945
H   0.0944       0.0945        0.0945     0.0945     0.0945
       同时这里将列出几种运算方式所消耗的时间。
表2 计算时间与CPU个数的关系
CPU核数    计算时间
   1              9分5秒
   2              4分39秒
   3              3分15秒
   4              2分48秒
      可以看出来,采用并行计算,节省的时间还是比较明显的,但是超过两个核后,效果不明显了,这是因为计算的量本身较小,硬盘的读写时间严重拖了后腿,我后来测试一个自身做的计算,单核需要8小时20分钟的任务,采用4核并行,大约只要1小时46分钟,感觉节省的时间比较多了。
      最后需要提示一下,采用并行的Orca,好像不论你路径怎么设置,软链接的Orca执行文件就不能用了,会出错,最安全的方法就是用绝对路径的方式调用Orca的执行文件对输入文件进行运算。
      关于计算机集群的安装使用方法,等待高手来完成了。

[ Last edited by yjcmwgk on 2010-9-9 at 16:30 ]
回复此楼

» 收录本帖的淘帖专辑推荐

模拟计算 Gadget

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

pwzhou

铁杆木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
其实,orca的并行就是安装一个openmpi而已,因为orca本身已经编译好了。
openmpi从源代码编译也比较简单,下载源代码,比如openmpi-1.4.1.tar.bz2
解压:tar xjvf openmpi-1.4.1.tar.bz2 (如果下载的是tar.gz的,则命令改为tar zxvf)
cd openmpi-1.4.1
./configure --prefix=安装目录
make all install
安装完成。

设置环境变量,在PATH和LD_LIBRARY_PATH中分别加入openmpi的bin和lib目录即可。

有一点需要注意,编译openmpi时不要使用intel或者pgi编译器,采用默认的gcc和gfortran就行了,用intel编译器编译的openmpi无法正确使用orca。还有就是看orca网站上的说明,最好选取orca网站指定的版本。

并行时使用orca必须用绝对路径,这是orca说明书里说的。
引用回帖:
Originally posted by ghcacj at 2010-09-09 14:21:08:
Orca是个很不错的量化软件,这个不用多说,跟高斯很像、上手很快、输入输出软件一目了然、计算速度快,这些都是它的优点,但是它也有个Linux软件的通病,就是,如果你不安装mpi类的程序,Orca就没法进行并行计算, ...

2楼2010-09-09 17:54:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghcacj

荣誉版主 (著名写手)

阿超

优秀版主

引用回帖:
Originally posted by pwzhou at 2010-09-09 17:54:49:
其实,orca的并行就是安装一个openmpi而已,因为orca本身已经编译好了。
openmpi从源代码编译也比较简单,下载源代码,比如openmpi-1.4.1.tar.bz2
解压:tar xjvf openmpi-1.4.1.tar.bz2 (如果下载的是tar.gz的 ...

你说的很对,我当初就是用icc来编译的,所以发现用不起来。
3楼2010-09-09 18:19:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ifmc1234

木虫 (著名写手)

引用回帖:
Originally posted by pwzhou at 2010-09-09 17:54:49:
其实,orca的并行就是安装一个openmpi而已,因为orca本身已经编译好了。
openmpi从源代码编译也比较简单,下载源代码,比如openmpi-1.4.1.tar.bz2
解压:tar xjvf openmpi-1.4.1.tar.bz2 (如果下载的是tar.gz的 ...

这个得顶。
4楼2010-09-12 19:59:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqzhang6518

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
只能分布式并行(使用本地硬盘), 很多集群上的账号都是共享硬盘的, 是没法并行算的! 这个问题折腾了我很长时间, 现在解决了!
5楼2010-09-14 09:21:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghcacj

荣誉版主 (著名写手)

阿超

优秀版主

引用回帖:
Originally posted by yqzhang6518 at 2010-09-14 09:21:49:
只能分布式并行(使用本地硬盘), 很多集群上的账号都是共享硬盘的, 是没法并行算的! 这个问题折腾了我很长时间, 现在解决了!

请问你是如何解决了?总之Linux上,单机用很容易,并行就麻烦很多。
6楼2010-09-14 09:28:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqzhang6518

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
把每个节点的硬盘挂到你的帐户目录下(需要管理员权限), 在本地硬盘计算! 有的集群不需要挂,只要到其本地硬盘算就行了!
7楼2010-09-14 10:08:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghcacj

荣誉版主 (著名写手)

阿超

优秀版主

引用回帖:
Originally posted by yqzhang6518 at 2010-09-14 10:08:55:
把每个节点的硬盘挂到你的帐户目录下(需要管理员权限), 在本地硬盘计算! 有的集群不需要挂,只要到其本地硬盘算就行了!

非常感谢,看来你对Orca也比较熟悉了,关于Orca的赝势计算,你做过吗?
8楼2010-09-14 10:13:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qzhaosdu

金虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
留名,感谢!以后备用
Anewday,anewhour,anewminute,anewpeople.
9楼2010-09-14 11:00:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghcacj

荣誉版主 (著名写手)

阿超

优秀版主

最新的Orca 2.8发布了,抓紧时间研究里面如何计算赝势,这个是我比较关心的。
10楼2010-09-15 09:34:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ghcacj 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见