24小时热门版块排行榜    

查看: 161  |  回复: 0
当前主题已经存档。

gleerat

木虫 (正式写手)

[交流] 【求助】安装MPICH2貌似成功,测试过程中的疑问多多

引用回帖:
1、从网址http://www-unix.mcs.anl.gov/mpi/mpich/ 处下载MPICH 最新版本的源程序, 文件名为mpich2-1.x.x.tar.gz, 其中1.x.x 为MPICH 的版本号(目前的最新版本为mpich2-1.1.1p1.tar.gz)。在下面描述的过程中需用MPICH 的实际版本号替换1.x.x
2、展开MPICH 源程序: tar zxvf mpich2-1.1.1p1.tar.gz
3、配置、编译MPICH:
cd mpich2-1.1.1p1 ./configure -prefix=/usr/local/mpi --disable-weak-symbols make
上述命令生成的MPICH 库应该使用ch_p4 进行底层通信。 选项--disable-weak-symbols 的使用是为避免MPICH 1.2.5 的一个bug, 否则产生的库中 将没有MPI_File_xxxx 等函数(只有PMPI_File_xxx 等函数)
4、安装MPICH:
make install
这一步必须以root 身份执行, 它将MPICH 的文件安装到目录/usr/local/mpi 中。安装完毕后可以删除MPICH 源文件目录。
5、添加环境变量 分别将“/usr/local/mpi/bin” 和“/usr/local/mpi/man” 加入到环境变量PATH 和MANPATH 中。 只需在目录/etc/profile.d 中创建两个文件mpich.sh 和mpich.csh, 它们分别对Bourne shell和C shell 起作用, 这两个文件的内容如下:
– /etc/profile.d/mpich.sh :
#!/bin/bash export
MANPATH=${MANPATH}:/usr/local/mpi/man export
PATH=${PATH}:/usr/local/mpi/bin
– /etc/profile.d/mpich.csh :
#!/bin/csh
if ( $?MANPATH == 0 )
then
setenv MANPATH :/usr/local/mpi/man
else
setenv MANPATH ${MANPATH}:/usr/local/mpi/man
endif setenv PATH ${PATH}:/usr/local/mpi/bin

引用回帖:
2.9 测试环境变量设置 #which mpd #which mpicc #which mpiexec #which mpirun
2.10 修改/etc/mpd.conf文件,内容为secretword=myword #vi /etc/mpd.conf
设置文件读取权限和修改时间
#touch /etc/mpd.conf
#chmod 600 /etc/mpd.conf

到 这一步我都是按照这上面做的,我改动了mpich.csh文件的内容:
CODE:
#!/bin/csh if ( $?MANPATH == 0 )
then setenv MANPATH :/usr/local/mpi/share/man
else
setenv MANPATH ${MANPATH}:/usr/local/mpi/share/man
endif
setenv PATH ${PATH}:/usr/local/mpi/bin

改动的mpich.sh文件的内容:
CODE:
#!/bin/bash
export MANPATH=${MANPATH}:/usr/local/mpi/share/man
export PATH=${PATH}:/usr/local/mpi/bin

之后我测试环境变量:
CODE:
gleerat@gleerat-desktop:~$ which mpd
/usr/bin/mpd
gleerat@gleerat-desktop:~$ which mpicc
/usr/bin/mpicc
gleerat@gleerat-desktop:~$ which mpiexec
/usr/bin/mpiexec
gleerat@gleerat-desktop:~$ which mpirun
/usr/bin/mpirun
gleerat@gleerat-desktop:~$ mpd &
[1] 27538
gleerat@gleerat-desktop:~$ mpdtrace
gleerat-desktop
gleerat@gleerat-desktop:~$ mpdallexit
gleerat@gleerat-desktop:~$

到这一步应该没什么问题。接下来测试程序
引用回帖:
测试运行MPICH的圆周率的程序
在软件的安装包里有圆周率计算的原代码icpi.c,先编译成可执行文件
#cd /usr/local/mpich/install/examples/
mpicc icpi.c -o icpi

引用回帖:
C 程序
cp /usr/local/mpi/examples/cpi.c .
mpicc -o cpi cpi.c .
mpirun -np 1 cpi
mpirun -np 2 cpi
Fortran 程序
cp /usr/local/mpi/examples/pi3.f .
mpif77 -o pi3 pi3.f .
mpirun -np 1 pi3
mpirun -np 2 pi3
(程序运行过程中依次输入10000 和0)

我找到进入example目录后却得到:
CODE:
gleerat@gleerat-desktop:~$ cp /home/mpich2-1.2/examples/cpi.c .
gleerat@gleerat-desktop:~$ mpicc -o cpi cpi.c .
/usr/bin/ld: .: No such file: File format not recognized
collect2: ld returned 1 exit status
gleerat@gleerat-desktop:~$ mpirun -np 1 cpi
Missing: program name
Program cpi either does not exist, is not executable, or is an erroneous argument to mpirun.
gleerat@gleerat-desktop:~$ mpirun -np 2 cpi
Missing: program name
Program cpi either does not exist, is not executable, or is an erroneous argument to mpirun.
gleerat@gleerat-desktop:~$ cd /home/mpich2-1.2/examples
gleerat@gleerat-desktop:/home/mpich2-1.2/examples$ mpicc icpi.c -o icpi
/usr/bin/ld: cannot open output file icpi: Permission denied
collect2: ld returned 1 exit status
gleerat@gleerat-desktop:/home/mpich2-1.2/examples$ sudo mpicc icpi.c -o icpi
gleerat@gleerat-desktop:/home/mpich2-1.2/examples$

请问大家,这是怎么回事呢,应该怎么解决呢?

[ Last edited by gleerat on 2009-11-18 at 11:45 ]
回复此楼
明察、慎思、笃行
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gleerat 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见