24小时热门版块排行榜    

查看: 2604  |  回复: 9

xk6891

至尊木虫 (著名写手)


[交流] 【求助】安装mpich2时如何产生mpicc及mpifort

mpich2安装好了之后没有mpicc或者mpifort啊,怎么办,下一步单机并行编译的时候需要这个东西啊,看了网上很多帖子,还是没有弄明白,大家怎么让icc成为mpicc及ifort成为mpifort的,不会是做个软链接吧,我太菜了看不懂啊
也就是如何让mpicc认定自己链接的是icc,还是gcc,及mpifort链接的是ifort还是gfortran
谢谢了

[ Last edited by xk6891 on 2010-11-29 at 08:57 ]
回复此楼

» 猜你喜欢

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

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

qphll

金虫 (正式写手)


★ ★ ★ ★ ★
xk6891(金币+2):谢谢专家 2010-11-29 09:49:23
ghcacj(金币+5):谢谢 2010-11-29 18:12:10
引用回帖:
Originally posted by xk6891 at 2010-11-29 08:46:33:
mpich2安装好了之后没有mpicc或者mpifort啊,怎么办,下一步单机并行编译的时候需要这个东西啊,看了网上很多帖子,还是没有弄明白,大家怎么让icc成为mpicc及ifort成为mpifort的,不会是做个软链接吧,我太菜了看 ...

(1) 先安装mpich or opemmpi

(2) 在 configure or make 你的C++或者FORTRAN的时候, 加上一些参数. 加什么, 怎么加, 参见你的编译器的manual.

比如, Intel C++, V11.0, 针对openmpi编译的时候, 加上的是:

-openmp-lib compat

你可以试试看.
2楼2010-11-29 09:37:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xk6891

至尊木虫 (著名写手)


引用回帖:
Originally posted by qphll at 2010-11-29 09:37:10:


(1) 先安装mpich or opemmpi

(2) 在 configure or make 你的C++或者FORTRAN的时候, 加上一些参数. 加什么, 怎么加, 参见你的编译器的manual.

比如, Intel C++, V11.0, 针对openmpi编译的时候, 加上的是 ...

您的意思是在configure或者make的时候,加上一定的选项,定义mpicc是icc还是ifort的,我理解的对么,具体的设置需要看这个openmpi或者mpi的manual,是么
3楼2010-11-29 09:51:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qphll

金虫 (正式写手)


引用回帖:
Originally posted by xk6891 at 2010-11-29 09:51:20:

您的意思是在configure或者make的时候,加上一定的选项,定义mpicc是icc还是ifort的,我理解的对么,具体的设置需要看这个openmpi或者mpi的manual,是么

正解.
4楼2010-11-29 10:29:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qphll

金虫 (正式写手)


★ ★ ★ ★ ★
xk6891(金币+3):谢谢专家 2010-11-29 11:14:40
ghcacj(金币+5):谢谢 2010-11-29 18:12:18
引用回帖:
Originally posted by xk6891 at 2010-11-29 09:51:20:

您的意思是在configure或者make的时候,加上一定的选项,定义mpicc是icc还是ifort的,我理解的对么,具体的设置需要看这个openmpi或者mpi的manual,是么

我记得,如果是mpich1.2.5的话, 如果是PGI Fortran, 这么做:

# ./configure --enable-debug -fc=pgf77,-f90=pgf90


具体查查manual就好了, Fortran和MPICH的manual都要查查, double check
5楼2010-11-29 10:34:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xk6891

至尊木虫 (著名写手)


引用回帖:
Originally posted by qphll at 2010-11-29 10:34:27:


我记得,如果是mpich1.2.5的话, 如果是PGI Fortran, 这么做:

# ./configure --enable-debug -fc=pgf77,-f90=pgf90


具体查查manual就好了, Fortran和MPICH的manual都要查查, double check

正在解决中,再次谢谢您的指导顶一下
6楼2010-11-29 11:15:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qphll

金虫 (正式写手)


★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ghcacj(金币+5):谢谢 2010-11-29 18:12:30
引用回帖:
Originally posted by xk6891 at 2010-11-29 11:15:51:

正在解决中,再次谢谢您的指导顶一下

在我的mac系统下解决

步骤如下

(1) # ./configure --prefix=/YOUR_DESTTINITION_FOLDER --enable-f77 --enable-fc --enable-cxx F77=ifort FC=ifort CC=icc CXX=icc  

(2) # make

(3) # make install

然后进入(1) 中指定的mpich的安装目录, 可以看到如下命令:

mpic++, mpicc, mpicxx, mpif77, mpif90

证明了mpich 和 C++, Fortran编译器的耦合

前提: 安装好Intel C++ 和 Intel Fortran Compiler
后续注意: 如果系统中安装多个版本的编译命令, 在使用的时候, 指明其绝对路径, 以免系统自己调用的那个, 不是你想要的.

此贴已解.
7楼2010-11-29 11:46:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xk6891

至尊木虫 (著名写手)


引用回帖:
Originally posted by qphll at 2010-11-29 11:46:16:


在我的mac系统下解决

步骤如下

(1) # ./configure --prefix=/YOUR_DESTTINITION_FOLDER --enable-f77 --enable-fc --enable-cxx F77=ifort FC=ifort CC=icc CXX=icc  

(2) # make

(3) # make ins ...

太感谢了,我刚刚做好,但是效率不高。原来做过一次并行lammps,是直接从新立德里面安装的openmpi,我当时不知道怎么生成的这些mpif77,mpicc这些东西。直到昨天晚上想把cpmd并行一下,一直无法成功,才发现这些新立德安装的东西是直接指向gfortran与gcc的,而cpmd貌似不能用gfortran编译,我不知道怎么办了(如果可以更改新立德的mpif77的软链接指向ifort或者f77,可能就可以通过了)。接着用mpich2,自己设置了一下。下面是比较并行与串行的结果:

(1)并行
================================================================
                      BIG MEMORY ALLOCATIONS
EIGRB            1716008                SCR               811025
SCR               810871                TWNS              520000
ATWFR             401600                C2                367016
C0                367016                SC0               367016
PME               367008                GNL               321280
----------------------------------------------------------------
[PEAK NUMBER  100]      PEAK MEMORY      7655183 =   61.2 MBytes
================================================================


****************************************************************
*                                                              *
*                            TIMING                            *
*                                                              *
****************************************************************
SUBROUTINE            CALLS         CPU TIME        ELAPSED TIME
    FFT-G/S            43614           149.00              135.40
    INVFFTN             9600            88.00              114.19
    FNONLOC              141            85.00               96.83
     RNLSM1              259            54.00               59.25
     FWFFTN             3384            39.00               40.34
     RHOOFR              259            31.00               35.82
   N-FFTCOM            12984            30.00               37.82
      FWFFT             1295            25.00               24.74
       VPSI              141            21.00               23.22
     GCENER              259            19.00               19.43
     EICALC              259            15.00               13.30
     INVFFT             1036            15.00               19.29
        RGS              221            14.00               10.27
     GLOSUM             2864            12.00               10.72
      PHASE             2331             7.00                5.43
     FFTCOM             2331             7.00               13.26
     RNLSM2               11             6.00                8.21
     GRADEN              259             5.00                8.10
     XCENER              259             4.00                4.58
     ROTATE              141             4.00                3.06
     PCGRAD              100             4.00                5.73
    VOFRHOA              259             3.00                2.17
     FORCES              141             2.00                1.22
----------------------------------------------------------------
TOTAL TIME                            639.00              692.40
****************************************************************

       CPU TIME :    0 HOURS 10 MINUTES 42.00 SECONDS     
   ELAPSED TIME :    0 HOURS 11 MINUTES 45.81 SECONDS     
***      CPMD| SIZE OF THE PROGRAM IS   46828/ 156904 kBYTES ***

PROGRAM CPMD ENDED AT:   Mon Nov 29 11:33:57 2010  

================================================================
= COMMUNICATION TASK  AVERAGE MESSAGE LENGTH  NUMBER OF CALLS  =
= SEND/RECEIVE               38691. BYTES                481.  =
= BROADCAST                  10919. BYTES                543.  =
= GLOBAL SUMMATION            9510. BYTES               3687.  =
= GLOBAL MULTIPLICATION          0. BYTES                  1.  =
= ALL TO ALL COMM           594281. BYTES              15315.  =
=                             PERFORMANCE          TOTAL TIME  =
= SEND/RECEIVE               98.938  MB/S           0.188 SEC  =
= BROADCAST                 198.743  MB/S           0.030 SEC  =
= GLOBAL SUMMATION            2.342  MB/S          14.973 SEC  =
= GLOBAL MULTIPLICATION       0.000  MB/S           0.001 SEC  =
= ALL TO ALL COMM           178.818  MB/S          50.898 SEC  =
= SYNCHRONISATION                                   0.085 SEC  =
================================================================



(2)串行
================================================================
                      BIG MEMORY ALLOCATIONS
EIGRB            3433808                SCR              1649515
SCR              1649361                SC0               734312
C0                734312                C2                734312
PME               734304                XF                610610
PSI               610610                YF                610610
----------------------------------------------------------------
[PEAK NUMBER   98]      PEAK MEMORY     14009863 =  112.1 MBytes
================================================================


****************************************************************
*                                                              *
*                            TIMING                            *
*                                                              *
****************************************************************
SUBROUTINE            CALLS         CPU TIME        ELAPSED TIME
    INVFFTN             9600           172.00              178.95
    FNONLOC              141            99.00              103.04
    FFT-G/S            25968            87.00               98.18
     RNLSM1              259            76.00               80.03
     FWFFTN             3384            60.00               64.62
     RHOOFR              259            45.00               44.45
      FWFFT             1295            39.00               42.39
     INVFFT             1036            37.00               33.23
     GCENER              259            36.00               34.37
       VPSI              141            34.00               28.35
     EICALC              259            16.00               14.40
        RGS              221            13.00               11.96
     RNLSM2               11             9.00               10.64
      PHASE             2331             8.00                7.07
     XCENER              259             7.00                7.94
     GRADEN              259             6.00               10.17
     ROTATE              141             5.00                4.80
     PCGRAD              100             4.00                5.14
     FORCES              141             3.00                1.29
    VOFRHOB              259             3.00                3.66
      OVLAP              141             3.00                4.35
KIN_ENERGY              259             2.00                1.18
----------------------------------------------------------------
TOTAL TIME                            764.00              790.19
****************************************************************

       CPU TIME :    0 HOURS 12 MINUTES 46.00 SECONDS     
   ELAPSED TIME :    0 HOURS 13 MINUTES 15.23 SECONDS     
***      CPMD| SIZE OF THE PROGRAM IS   65168/ 156984 kBYTES ***

PROGRAM CPMD ENDED AT:   Mon Nov 29 10:29:00 2010  




(3)并行只用一个cpu
================================================================
                      BIG MEMORY ALLOCATIONS
EIGRB            3433808                SCR              1649515
SCR              1649361                SC0               734312
C0                734312                C2                734312
PME               734304                YF                610610
XF                610610                PSI               610610
----------------------------------------------------------------
[PEAK NUMBER  100]      PEAK MEMORY     14128259 =  113.0 MBytes
================================================================


****************************************************************
*                                                              *
*                            TIMING                            *
*                                                              *
****************************************************************
SUBROUTINE            CALLS         CPU TIME        ELAPSED TIME
    INVFFTN             9600           171.00              171.87
    FFT-G/S            43614           149.00              134.67
    FNONLOC              141           133.00               70.52
     RNLSM1              259           100.00               51.25
     FWFFTN             3384            53.00               59.53
      FWFFT             1295            51.00               37.25
     RHOOFR              259            47.00               48.39
       VPSI              141            36.00               29.66
     GCENER              259            33.00               33.61
     INVFFT             1036            25.00               29.12
        RGS              221            15.00                6.36
     EICALC              259            12.00               13.97
     RNLSM2               11            12.00                6.32
     PCGRAD              100             9.00                5.07
     FFTCOM             2331             6.00                3.76
      OVLAP              141             6.00                2.54
     GRADEN              259             5.00                9.44
   N-FFTCOM            12984             4.00                6.13
      PHASE             2331             4.00                8.01
     XCENER              259             4.00                7.83
     ROTATE              141             4.00                2.36
    VOFRHOA              259             3.00                2.97
    VOFRHOB              259             2.00                3.54
----------------------------------------------------------------
TOTAL TIME                            884.00              744.18
****************************************************************

       CPU TIME :    0 HOURS 14 MINUTES 48.00 SECONDS     
   ELAPSED TIME :    0 HOURS 12 MINUTES 29.39 SECONDS     
***      CPMD| SIZE OF THE PROGRAM IS   67768/ 177868 kBYTES ***

PROGRAM CPMD ENDED AT:   Mon Nov 29 11:47:49 2010  

AMD Athlon64 X2的cpu,用的是icc与ifort,好像内存的使用率一直不高,并行和串行的差不多,但是cpu的利用率一直都是很高的。这是只能达到这个并行的地步了,还是还有提高的空间,我刚接触linux还很菜,还请专家多多指教。谢谢了。
8楼2010-11-29 12:06:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qphll

金虫 (正式写手)


★ ★ ★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xk6891(金币+5):3Q~~专家顾问~~呵呵 2010-11-29 13:19:50
ghcacj(金币+7):谢谢 2010-11-29 18:12:45
引用回帖:
Originally posted by xk6891 at 2010-11-29 12:06:33:

太感谢了,我刚刚做好,但是效率不高。原来做过一次并行lammps,是直接从新立德里面安装的openmpi,我当时不知道怎么生成的这些mpif77,mpicc这些东西。直到昨天晚上想把cpmd并行一下,一直无法成功,才发现这些 ...

首先, 啥叫"新立德", 我看到你回复有好几处, 大概能猜到, 但是想确认一下, 哈哈.

另外, 关于编译器的选择, 这个是很"为难"的事情. 从我自己的经验来讲 (没有benchmark的数据), 大概我估摸出这么几个比较优化的组合:

(1) Quantum-espresso: Intel
(2) Lammps, CPMD: PGI

或者说, 我感觉除了 Quantum-espresso 在intel下速度很满意之外, 其他的都是PGI占优.

当然, 这只是在你自己的cluster上的时候的情况. 一般大型的机器, 一般都有专门经过优化的编译器.

所以我的建议是: 在允许的范围内, 尝试几种编译器. 不管怎样, 能安装起来, 能顺利并行起来是王道, 后面的优化, 是比较tricky的, 而且, 似乎如果"太"专注优化了, 可能会带来比较大的浮点数误差. 我依稀记得有文章(或者书)说过这个, 但是忘记出处了.
9楼2010-11-29 12:24:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xk6891

至尊木虫 (著名写手)


引用回帖:
Originally posted by qphll at 2010-11-29 12:24:31:


首先, 啥叫"新立德", 我看到你回复有好几处, 大概能猜到, 但是想确认一下, 哈哈.

另外, 关于编译器的选择, 这个是很"为难"的事情. 从我自己的经验来讲 (没有benchmark的数据), 大概我 ...

哦,呵呵,我刚刚接触linux系统用的是ubuntu,据说比较容易上手,“新立得软件包管理器”有点像windows里面的“控制面板”,如果在“新立得”能找到你所需要的安装代码的话,安装的时候只要选定,点击“应用”就可以安装了,省去了编译的过程,感觉这是ubuntu最方便之处。
啊,不好意思,,还没有cluster,我只是在自己的单机上双核并行实验一下,感谢专家的经验,一定谨记回头有机会一定实验一下这些优化。再次对您详尽的指导表示感谢
真的是受益匪浅,学到很多东西。谢谢您。

[ Last edited by xk6891 on 2010-11-29 at 13:20 ]
10楼2010-11-29 13:18:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xk6891 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见