明天考完linux给答案,求10分。
(1) MPI_Comm_size(MPI_COMM_WORLD,&numprocs);*********指定进程数
MPI_Comm_rank(MPI_COMM_WORLD,&myid); *********取得进程数
(2)本题是块划分方式
循环划分代码:
i=myid;
while(i
myresult+=data[i];
i+=numproc;
}
(3)书上83-85
(4)SPMD程序的特点:
各个处理机上程序同时并行运行,首先初始化好(从/$home/data读取数据并存到data[10]数组中)
然后把任务分配给各个程序
最后把结果规约到root进程,
并在root上做出相应处理(本题是打印)
(5)MPI_Bcast(data, SIZE, MPI_INT, 0, MPI_COMM_WORLD);
把data的值广播(Broadcast)给每个进程.
MPI_Reduce(&myresult, &result, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
把各个进程的myresult规约到根进程的result结果中。