?? q1.cpp
字號:
# include <mpi.h>
# include <stdlib.h>
# include <stdio.h>
# define NPROCS 9
int main(argc,argv)
int argc;
char *argv[]; {
int rank, new_rank, numtasks,i,
ranks1[3]={0,1,2}, ranks2[3]={3,4,5}, ranks3[3]={6,7,8};
MPI_Group orig_group, new_group1, new_group2, new_group3, group_union, f_group;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
if (numtasks != NPROCS) {
printf("Must specify MP_PROCS= %d. Terminating.\n", NPROCS);
MPI_Finalize();
}
// sendbuf = rank;
MPI_Comm_group(MPI_COMM_WORLD, &orig_group);
for ( rank=1; rank<=NPROCS; rank++)
{
switch (rank % 3)
{
case 0:
MPI_Group_incl(orig_group,NPROCS/3,ranks1,&new_group1);
break;
case 1:
MPI_Group_incl(orig_group,NPROCS/3,ranks2,&new_group2);
break;
case 2:
MPI_Group_incl(orig_group,NPROCS/3,ranks3,&new_group3);
break;
};
}
MPI_Group_union(new_group1,new_group2,&group_union);
MPI_Group_difference(group_union,new_group3,&f_group);
MPI_Group_rank (f_group, &new_rank);
if (new_rank!=MPI_UNDEFINED)
{
printf("\nrank((1+2)-3)= %d\n ",new_rank);
}
MPI_Finalize();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -