添加到我关注的
Centos5.2 下安装64位的ifort 和MPICH2并行
Centos5.2 下安装64位的ifort 和MPICH2并行
微尘http://free.yes81.net/yes81/view-5135.html
虽然早期在WINDOWS下玩过MPI,不过在LINUX下还是头一糟。以前只是为了学习和摸索RED9而学习过些。这次可是从头开始,一个命令学习,可谓难矣。花了2天半的时间总算弄通了,也大略对LINXU 下的环境的ifrot和MPICH的配置略知一些,并结合其他先行者的资料这里补充和总结。
Centos5.2 已经自带了yum安装包,因此下面的调用和升级包的执行就基于此。
如果是普通借口的硬盘,直接把安装盘放入运行就可以了。如果是阵列接口,则需要先用软盘做好驱动。在安装界面输入linux dd回车就好了!
Centos 5.2是服务器内核的64位操作系统,可谓功力强大。
安装时候必须选择上F77/F90等开发工具
我在intel网站上下了不进行技术支持的免费11版本,安装过程极其奇怪,无法辨认到操作系统到底是32位还是64位,也不用提示输入license文件。经过多次尝试只好放弃!
最后是其他学生提供了一套10的版本,而且也提供了license文件。初步安装就通过了,感觉顺利过头了。下面就介绍下,安装前的一些准备工作
yum install cpp gcc gcc-c++ gcc-gfortran gcc-objc++ gcc-objc gcc44 libgcc libgfortran libobjc libstdc++ libstdc++-devel
yum install libstdc++.so.5 这个肯定需要执行的,否则ifort安装不了
yum install glibc-devel
yum install gcc* -y
这个命令很偷懒,全部一次安装好C的编译器
在Intel网站下载9.1.047版icc(我是没安装,可以不装)和9.1.043版ifort,然后按网站要求申请许可证,并按提示进行安装即可,我都是全部安装的。基本上10版本的ifort安装很方便就完成的。重要一点就是必须先建立ifort的安装目录,并且把lincese文件复制进入对应目录里。
把安装目录下bin文件夹中的iccvars.sh和ifortvars.sh拷贝到/etc/profile.d中。
这个很重要,作了就可以进行下面的MPI的配置和MAKE了,否则死都过不去!
按照说明说的介绍,PDF里有介绍如何卸载的
本来是可以不要的, 不过操作起来很简单,就顺手都给安装上了
yum install openssh openssh-server openssh-clients openssh-askpass
这一步我觉得单机并行似乎可以不要,不过以前这么做的,没有问题,所以现在还这么做
加入一行:127.0.0.1 node01
c.启动sshd并自动生成密钥:
/etc/rc.d/init.d/sshd start
加入启动服务:
chkconfig --level 5 sshd on
d.限制其它人连接:两种做法:a.设置iptables,b.编辑/etc/hosts.deny和/etc/hosts.allow,
这两个文件的格式忘掉了,有需要的同学可以查一下。
export CC=icc //----如果安装了icc就必须设置这个,否则千万别设置这个了。
export FC=ifort
export F90=ifort
./configure --prefix=/opt/mpi
make
make install
上面3条命令可以在下面一条完成
./configure --prefix=/opt/mpi -cc=gcc -fc=ifort -f90=ifort && make && make install
上面编译大约需要几分钟,耐心等待结束。如果出现异常比如提示说C写入等错误,那么就是没有安装icc而却设置了icc的路径
如果有什么需要进行环境或安装目录的变化的也只需要重新执行1-3步就可以了!
vi /etc/profile.d/mpi.sh
在里面输入:
export PATH=$PATH:/opt/mpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mpi/lib
然后保存,在插入模式下多按几次ESC键,然后输入:x回车就可以保存了
再执行次source mpi.sh
a.root用户
vi /etc/mpd.conf
在其中加入:MPD_SECRETWORD=ROOT 用户的密码
然后保存,并执行chmod 600 mpd.conf
b.普通用户
vi $HOME/.mpd.conf
然后同上操作,注意文件是.mpd.conf,
且密码是用户密码。
修改/etc/hosts.equiv 文件(如果没有就创建该文件),内容如下:
space1
space2
告诉电脑,有哪几台电脑联合作为机群,如果只有一台电脑,则只要输入当前机的名字就可以了
mpdboot
这个在每次启动电脑后,都需要执行一次的
mpirun –np N ./program 注意前面有./ 否则可能会说文件不存在,N是同时并发的进程数。
编译ifrot 的程序,可以直接使用mpif90 –o abc abc.f90 直接编译和连接abc.f90生成执行文件名字abc。
实际上系统已经默认了mpif90、mpif77的执行等同mpiifort,很奇怪,为什么不生成一个mpiifort,也许这只是外挂的程序。
/opt/mpi/sbin/mpeuninstall may be used to remove the installation
Installed MPE2 in /opt/mpi
/opt/mpi/sbin/mpeuninstall may be used to remove the installation
参考文章:
下面这个安装过程文件参考了
《双核CPU单机并行环境设置方法》
《SLES10 Linux(kernel-2.6.16.21-0.8)平台下搭建Fortran并行编译环境》
《ubutun804_amd_安装ifc 以及如何并行》