设为首页 加入收藏

TOP

C指针原理(55)-C语言-pvm并行计算(三)
2014-11-23 20:15:57 来源: 作者: 【 】 浏览:19
Tags:指针 原理 语言 -pvm 并行 计算
r/lib/pvm3/bin/LINUX$ pvm

pvmd already running.

pvm> spawn -> testpvm1

spawn -> testpvm1

[1]

1 successful

t40042

pvm> [1:t40043] testpvm2 get ptid.....

[1:t40043] testpvm2 run.....

[1:t40042] testpvm1 get ptid.....

[1:t40042] spawn testpvm2.....

[1:t40042] send:deepfuture.iteye.com

[1:t40042] recv:DEEPFUTURE.iteye.com

[1:t40042] EOF

[1:t40043] EOF

[1] finished

8、ubuntu使用新立得安装pvm3、libpvm3、pvm-dev

PVM安装调试及应用程序编译链接测试

说明:

1.以两台机器为例,假定所用机器名为pvm01(202.113.12.151)和pvm02(202.113.12.152)。要求网络工作正常。

2.运行并行程序需要在各个结点机上有相同的用户名和密码,并有相应的配置。这里我们假定用户名为pvmgroup,密码pvmgroup。

3.例子程序为Master-Slave并行程序,用来计算Pi值,同时做一些相应的统计。dtiming为Master程 序,dtiming_slave为slave程序,Makefile.aimk是PVM程序编译与链接程序aimk所使用的文件,功能与Makefile 文件相同。

一、运行环境配置与调试

1.修改/etc/hosts文件。

添加

202.113.12.151 pvm01

202.113.12.152 pvm02

2.如果是csh,修改(创建)/home/pvmgroup/.cshrc文件

setenv PVM_ROOT /usr/share/pvm3

setenv PVM_ARCH LINUX

setenv PATH /usr/share/pvm3/lib:./$PATH

如果是bash,则修改.bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/share/pvm3/lib

BASH_ENV=$HOME/.bashrc

USERNAME=""

PVM_ROOT=/usr/share/pvm3

PVM_ARCH=LINUX

export USERNAME BASH_ENV PATH PVM_ROOT PVM_ARCH

3.修改(创建)/home/pvmgroup/.rhosts文件。

pvm01 pvmgroup

pvm02 pvmgroup

4.调试

$ pvm

pvm> add pvm01

add pvm01

1 successful

HOST DTID

pvm01 80000

pvm> halt

halt

Terminated

如果各个结点都正确配置屏幕将有如上输出,其中斜体为用户输入。如果配置有误,将报相应错。

二、PVM应用程序的编译、链接与运行

1.创建目录/home/pvmgroup/pvm3/bin/LINUX。(编译好的程序要放到这里)

2.COPY源程序及Makefile.aimk到/home/pvmgroup/pvm3/bin/LINUX目录下。

3.$ cd /home/pvmgroup/pvm3/bin/LINUX

$ ./aimk

4.将生成的可执行文件FTP到各结点机的相同目录下,并增加可执行属性。

或者在每个结点机上都编译、链接一遍。

如果是异构结点机,必须重新编译。

5.启动PVM,运行程序,步骤及正常运行结果如下:

$ pvm

pvm> add pvm01

add pvm01

1 successful

HOST DTID

pvm01 80000

pvm> quit

quit

Console: exit handler called

pvmd still running.

$ ./dtiming

i'm t40002

there has 2 machines!

slave 0 is task t80001 ok,send parameter to task 0

slave 1 is task t40003 ok,send parameter to task 1

The start time is:1026871885

task 0 finished! return is 0.8472130900904784

the time is:11

task 1 finished! return is 0.9270373444467532

the time is:0

the total time is:11

result is 3.1415926928720199

$

其中斜体为用户输入,其余为系统输出。机器不同,输出的结果也会有所不同。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据结构程序设计――C语言学生管.. 下一篇C指针原理(56)-Ncurses-文本终端..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: