1、主进程 testpvm1,发送字符串,接收大写化的字符串
#include "pvm3.h"
#include <stdio.h>
int main(int argc,char *argv[]){
int RetCode,MessageId;
int PTid,Tid;
char Message[100];
char Result[100];
printf("testpvm1 get ptid.....\n");
PTid=pvm_mytid();//返回调用进程的任务标识符
if (PTid==PvmSysErr) perror("pvm_mytid() error:PvmSysErr\n");
printf("spawn testpvm2.....\n");
//深未来技术 deepfuture.iteye.com
RetCode=pvm_spawn("testpvm2",NULL,PvmTaskHost,"deepfuture-laptop",1,&Tid);
//启动一个新的PVM子进程testpvm2,用来接收和处理Message消息,转化为大写,Tid为新的任务标识
if (RetCode==1){
MessageId=1;//指明当前消息
strcpy(Message,"deepfuture.iteye.com");
pvm_initsend(PvmDataDefault);//初始化消息缓冲区
pvm_pkstr(Message);//对变量Message的内容进行打包
pvm_send(Tid,MessageId);//将消息缓冲区的消息发送,MessageId简单指明正在发送的消息
pvm_recv(Tid,MessageId);//接收消息
pvm_upkstr(Result);//将消息缓冲区的接收到的内容放到一个数组中。
printf("send:%s\n",Message);
printf("recv:%s\n",Result);
pvm_exit();
return 0;
}
else{
printf("不能启动新进程\n");
pvm_exit();
return 1;
}
}
2、从进程 testpvm2,将字符串转化为大写,然后返回给主进程
#include "pvm3.h"
#include <stdio.h>
int main(int argc,char *argv[]){
int RetCode,MessageId;
int PTid;
char Message[100];
char myc[100];
int i=0;
printf("testpvm2 get ptid.....\n");
PTid=pvm_parent();//返回调用进程的任务标识符
if (PTid==PvmNoParent) perror("PvmNoParent error\n");
else if (PTid==PvmSysErr) perror("PvmSysErr error\n");
printf("testpvm2 run.....\n");
MessageId=1;//指明当前消息
pvm_recv(PTid,MessageId);//接收消息
//深未来技术 deepfuture.iteye.com
pvm_upkstr(Message);//对变量Message的内容进行解包
while (Message[i]!='\0'){ //将小写转化成大写
if (islower(Message[i]))
myc[i]=toupper(Message[i]);
else
myc[i]=Message[i];
i++;
}
myc[i]='\0';
pvm_initsend(PvmDataDefault);//初始化消息缓冲区
pvm_pkstr(myc);//对变量Message的内容进行打包
pvm_send(PTid,MessageId);//将消息缓冲区的消息发送,MessageId简单指明正在发送的消息
pvm_exit();
return 0;
}
3、makefile
深未来技术 deepfuture.iteye.com
testpvm:testpvm1 testpvm2
sudo cp /home/deepfuture/private/mytest/pvmtest/testpvm1 /usr/lib/pvm3/bin/LINUX/testpvm1
sudo cp /home/deepfuture/private/mytest/pvmtest/testpvm2 /usr/lib/pvm3/bin/LINUX/testpvm2
testpvm1:
gcc -o /home/deepfuture/private/mytest/pvmtest/testpvm1 -lpvm3 /home/deepfuture/private/mytest/testpvm1.c
testpvm2:
gcc -o /home/deepfuture/private/mytest/pvmtest/testpvm2 -lpvm3 /home/deepfuture/private/mytest/testpvm2.c
clean:
rm /home/deepfuture/private/mytest/pvmtest/testpvm*
sudo rm /usr/lib/pvm3/bin/LINUX/testpvm*
4、二进制文件存放目录 为
$PVM_ROOT/bin/$PVM_ARCH
本机为/usr/lib/pvm3/bin/LINUX/
5、启动pvmd
pvmd &
6、运行testpvm1
deepfuture@deepfuture-laptop:/usr/lib/pvm3/bin/LINUX$ ./testpvm1
testpvm1 get ptid.....
spawn testpvm2.....
send:deepfuture.iteye.com
recv:DEEPFUTURE.iteye.com
7、在pvm控制台运行testvpm1
deepfuture@deepfuture-laptop:/usr/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
分享到:
相关推荐
Linux环境下构架基于PVM的并行机群.pdf
人工智能-图像处理-基于PVM并行图像处理的研究.pdf
云计算-可视化PVM网络并行计算开发集成环境的设计与实现.pdf
P+F(倍加福)绝对值编码器PVM58使用手册中文版(带Profibus通讯连接说明)
嘿嘿 成点分噢 哈哈哈哈哈哈哈哈哈哈爱好和
本教程由开发该软件的团队撰写,是希望使用PVM来提高其高性能计算资源的灵活性和功能的科学家,工程师和其他计算机用户的权威资源。
matlab解压代码OMAL-PVM-分析仪 介绍 OMAL PVM Analyzer 软件处理和分析偏振视频显微镜延时数据,以确定生物大分子晶体中配体诱导的晶格跃迁的跃迁时间和持续时间。 该分析基于由配体诱导的晶格转变期间发生的双折射...
vtk学习中使用的人脑部CT图像扫描资源,包括有CT-Head.raw、CT-Head.vtk、CT-Head.pvm文件
jBPM4的PVM实现解析
Faces2pvm的产生是由于需要一种工具来完成配置Unix(不仅是Linux)计算机以运行PVM的所有繁琐工作。 它启动PVM,唤醒主机,将其关闭,配置目录,创建主机文件,诊断有问题的网络问题
sony PVM系列服务手册,包括PVM-14N和20N系列的菜单说明,调节说明,工程模式的具体参数和初始值,元件说明等,非常详细,是彩监爱好者必备手册。
PVM是一个在网络上的虚拟并行机系统的软件包。它允许将网络上基于UNIX操作系统的并行机和单处理机的集合当成一台单一的“并行虚拟机”来使用。PVM支持用户采用消息传递方式编写并行程序。
PVME指南这是找到的所有信息的最新存储库。对指南所做的所有更改都将保存在此处,并且,根据我们的,每个人都可以随意使用这些信息。如果您有兴趣做出贡献,请在不和谐的情况下联系Hoobs#3248或Ry#3050,或在阅读...
介绍并行虚拟机(PVM)系统以及如何使用PVM开发程序。 提供快速进入异构网络计算世界的入口。
PVM(Parallel Virtual Machine)作为一种主流的集群并行计算环境,能够应付主机和网络故障并且提供轮询机制和故障通知原语来建立容错应用。由于PVM原有的故障检测机制不能满足实时性要求,因此提出并实现了两种改进...
在jbpm 4.3中如何取得Dbsession,TaskImpl等,关于pvm的使用 目前不是很明白dbsession,taskimpl的含义。初学者。
22-集群和主机管理 23-集群的高可用性(HA)配置 24-计算资源调度配置 25-虚拟机的QOS 26-系统管理 27-监控 401-华为桌面云简介 402-IT基础架构构建 403-安装Linux基础架构虚拟机 404-安装Windows基础架构...
JBPM4_PVM源代码分析.doc,概要分析pvm的所有类
PVM58编码器GSD文件,在西门子Profibus组态中使用
Windows下PVM的安装_配置与编程