设为首页 加入收藏

TOP

C指针原理(55)-C语言-pvm并行计算(一)
2014-11-23 20:15:57 来源: 作者: 【 】 浏览:18
Tags:指针 原理 语言 -pvm 并行 计算

1、配置PVM

并行计算机(pvm)是用于网络并行计算机上的软件工具。设计它的目的是将异构的计算机网络连接起来,使它使用起来就像一组分布式的并行处理器。

PVM支持多种并行计算模型,用户使用PVM提供的函数库可进行并行程序或分布式程序的设计工作,使用传统的C语言和Fortran语言。系统提供了一组便于使用的通信原语,可实现一个任务向其它任务发消息,向多个任务发消息,以及阻塞和无阻塞收发消息等功能,用户编程与网络接口分离。

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


1)环境

PVM_ROOT=/usr/lib/pvm3为配置根目录

PVM_ARCH=LINUX为配置计算机类型,包括unix

deepfuture-lx@deepfuture-lx-desktop:/usr/lib/jvm$ sudo gedit /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun/bin"

CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib

JAVA_HOME=/usr/lib/jvm/java-6-sun

PVM_ROOT=/usr/lib/pvm3

PVM_ARCH=LINUX

2) PVM环境中的二进制程序的目录和需要使用的用户名

二进制程序目录名默认为$PVM_ROOT/bin/$PVM_ARCH

ep为二进制程序目录名,lo为使用非登录PVM环境用户的用户名,deepfuture-laptop为主机名,&主机名表示PVM环境不自动增加这些主机

例如:

deepfuture@deepfuture-laptop:/usr/lib/pvm3$ sudo gedit hostfile

deepfuture-laptop

&deepfuture-javaeye

&deepfuture-lx lo=deepfuture

ep=/home/deepfuture/private/mytest/pvmtest/

3) 列出希望使用的所有主机

.rhosts文件

deepfuture-laptop

4)启动pvmd程序

deepfuture@deepfuture-laptop:/usr/lib/pvm3$ pvmd hostfile &或者

deepfuture@deepfuture-laptop:/usr/lib/pvm3$ pvmd &

5)通常程序(二进制文件)的缺省目录为:

$HOME/pvm3/bin/

6)启动

deepfuture@deepfuture-laptop:/usr/lib/pvm3$ pvm

pvmd already running.

pvm> quit

quit

如果启动失败,则清除临时文件

deepfuture@deepfuture-laptop:/usr/lib/pvm3$ sudo rm -f /tmp/pvm*.*

7)运行程序,testpro为程序名

$testpro

pvm>spawn -> testpro

安装完PVM以后,还需要编辑/ect/hosts文件,来列出你要加入的所有主机名及其对应的IP地址,以便在用add命令来加入主机时,PVM可以根据主机名来寻找相应的IP,从而确定相应的主机。基本格式如下:

hostname1 10.30.13.58(numeric IP)

hostname2 10.30.13.62

… …. ….

每行一个主机。

将激活的消息缓冲区的内容放入一个预定类型的数组中

NAME

pvm_unpack - Unpack the active message buffer into arrays of prescribed data type.

SYNOPSIS

Cint info = pvm_unpackf( const char *fmt, ... )

int info = pvm_upkbyte( char *xp, int nitem, int stride)

int info = pvm_upkcplx( float *cp, int nitem, int stride)

int info = pvm_upkdcplx( double *zp, int nitem, int stride)

int info = pvm_upkdouble( double *dp, int nitem, int stride)

int info = pvm_upkfloat( float *fp, int nitem, int stride)

int info = pvm_upkint( int *ip, int nitem, int stride)

int info = pvm_upkuint( unsigned int *ip, int nitem, int stride )

int info = pvm_upkushort( unsigned short *ip, int nitem, int stride )

int info = pvm_upkulong( unsigned long *ip, int nitem, int stride )

int info = pvm_upklong( long *ip, int nitem, int stride)

int info = pvm_upkshort( short *jp, int nitem, int stride)

int info = pvm_upkstr( char *sp )

PVM是一个在网络上的虚拟并行机系统的软件包。它允许将网络上基于UNIX操作系统的并行机和单处理机的集合当成一台单一的“并行虚拟机”来使用。 2.1 PVM的产生和发展 PVM的开发最早开始于1989年夏天,目前它的开发队伍包括美国橡树岭国家实验室(ORNL)、Tennessee大学、Emory大学以及CMU等单 位,并得到美国能源部、国家科学基金以及田纳西州的资助。PVM是一套并行计算工具软件,支持多种体系结构的计算机,象工作站、并行机以及向量机等,通过 网络将它们连起来,给用户提供一个功能强大的分布存储计算机系统。PVM支持C和Fortran两种语言,目前已发展到3.4版,由于它是免费的,因此使 用范围非常广泛。 2.2 PVM的特点 PVM支持用户采用消息传递方式编写并行程序,计算以任务(task)为单位,一个任务就是一个UNIX进程,每个任务都有一个taskid来标识(不同 于进程号)。PVM支持在虚拟机中自动加载任务运行,任务间可以相互通讯以及同步。在PVM系统中,一个任务被加载到哪个结点上去运行,一般来说,对用户 是透明的(PVM允许用户指定任务被加载的结点),这样就方便了用户编写并行程序。 归结起来,PVM的特点有如下几点: PVM系统支持多用户及多任务运行,多个用户可将系统配置成相互重叠的虚拟机,每个用户可同时执行多个应用程序。 易于编程。PVM支持多种并行计算模型,用户使用PVM提供的函数库可进行并行程序或分布式程序的设计工作,使用传统的C语言和Fortran语言。 系统提供了一组便于使用的通信原语,可实现一个任务向其它任务发消息,向多个任务发消息,以及阻塞和无阻塞收发消息等功能,用户编程与网络接

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

评论

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