#include <stdio.h>
#include <mpi.h>
class Student{
public:
int id;
char *name;
char *addr;
Student(){}
Student(
int id,
char *name,
char *addr){
this->id = id;
this->name = name;
this->addr = addr;
}
void showInfo(
int rank){
printf(
"rank = %d, id=%d,name=%s,addr=%s\n",rank,id,name,addr);
}
};
int main(
int argc,
char *argv[]){
int rank,nproc;
char *node_name,*node_addr;
int node_id;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&nproc);
int len;
char proc_name[MPI_MAX_PROCESSOR_NAME];
MPI_Get_processor_name(proc_name,&len);
Student *stu;
stu =
new Student(
10,proc_name,
"www.g00gle.com");
stu->showInfo(rank);
node_name = (
char *)
malloc(
sizeof(
char)*
20);
node_addr = (
char *)
malloc(
sizeof(
char)*
20);
if(rank ==
0){
stu->name =
"zhangsan";
stu->addr =
"nowYao";
node_id = stu->id +
1;
strcpy(node_name,stu->name);
strcpy(node_addr,stu->addr);
}
MPI_Bcast(&node_id,
1,MPI_INT,
0,MPI_COMM_WORLD);
MPI_Bcast(node_name,
20,MPI_CHAR,
0,MPI_COMM_WORLD);
MPI_Bcast(node_addr,
20,MPI_CHAR,
0,MPI_COMM_WORLD);
MPI_Barrier(MPI_COMM_WORLD);
Student *stu2 =
new Student(node_id,node_name,node_addr);
stu2->showInfo(rank);
MPI_Finalize();
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-300181.html