#include #include #include #include #include #include int main (int argc,char**argv){ int tid[3],size,rank,me,from,to,i,atid,atag,alen; char*buf;struct timeval tv0,tv1;double t0,t1; size=(int)(sizeof(tid)/sizeof(tid[0]));rank=pvm_joingroup("pvmtest"); #if (!defined(_CRAYMPP)) if (rank==0) {char binbuf[4096],pwdbuf[4096]; (void)strcpy(binbuf,getcwd(pwdbuf,sizeof(pwdbuf))); (void)strcat(binbuf,(char*)"/"); (void)strcat(binbuf,*argv); if (pvm_spawn(binbuf,argv,0,(char*)0,size-1,&tid[1])1){ (void)pvm_hostsync(me,&tv0,0); (void)pvm_psend(to, 0,(char*)buf,i*sizeof(char),PVM_BYTE); (void)pvm_precv(from,0,(char*)buf,i*sizeof(char),PVM_BYTE,&atid,&atag,&alen); (void)pvm_hostsync(me,&tv1,0); t0=tv0.tv_sec+(double)tv0.tv_usec*1.0e-6; t1=tv1.tv_sec+(double)tv1.tv_usec*1.0e-6; (void)printf("message size = %d, norm comm time = %g\n",i,(t1-t0)/(double)size);} else if (rank!=0 && size>1){ (void)pvm_precv(from,0,(char*)buf,i*sizeof(char),PVM_BYTE,&atid,&atag,&alen); (void)pvm_psend(to, 0,(char*)buf,i*sizeof(char),PVM_BYTE);}} (void)pvm_exit(); return(0);}