⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typeub2.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
#include "mpi.h"#include <stdio.h>#if defined(NEEDS_STDLIB_PROTOTYPES)#include "protofix.h"#endif int main( int argc, char *argv[] ){    MPI_Datatype dt1, dt2, dt3;    MPI_Aint     ex1, ex2, ex3;    int          sz1, sz2, sz3;    MPI_Aint     lb,ub;    MPI_Aint     disp[3];    MPI_Datatype types[3];    int          blocklen[3];     MPI_Init(&argc, &argv);     blocklen[0] = 1;    blocklen[1] = 1;        blocklen[2] = 1;    disp[0] = -3;       disp[1] = 0;            disp[2] = 6;    types[0] = MPI_LB;  types[1] = MPI_INT;     types[2] = MPI_UB;     MPI_Type_struct(3,blocklen,disp, types,&dt1);    MPI_Type_commit(&dt1);         MPI_Type_lb(dt1, &lb);          MPI_Type_ub(dt1, &ub);        MPI_Type_extent(dt1,&ex1);      MPI_Type_size(dt1,&sz1);	/* Values should be lb = -3, ub = 6 extent 9; 	   size depends on implementation */	if (lb != -3 || ub != 6 || ex1 != 9) {	    printf("Example 3.26 type1 lb %d ub %d extent %d size %d\n",		   (int)lb, (int)ub, (int)ex1, sz1);	}	else 	    printf("Example 3.26 type1 correct\n" );     MPI_Type_contiguous(2,dt1,&dt2);        MPI_Type_lb(dt2, &lb);          MPI_Type_ub(dt2, &ub);        MPI_Type_extent(dt2,&ex2);      MPI_Type_size(dt2,&sz2);	/* Values should be lb = -3, ub = 15, extent = 18, size	   depends on implementation */	if (lb != -3 || ub != 15 || ex2 != 18) {	    printf("Example 3.26 type2 lb %d ub %d extent %d size %d\n", 		   (int)lb, (int)ub, (int)ex2, sz2);	}	else 	    printf( "Example 3.26 type2 correct\n" );     types[0]=dt1;               types[1]=dt1;    blocklen[0]=1;              blocklen[1]=1;    disp[0]=0;                  disp[1]=ex1;     MPI_Type_struct(2, blocklen, disp, types, &dt3);    MPI_Type_commit(&dt3);         MPI_Type_lb(dt3, &lb);          MPI_Type_ub(dt3, &ub);        MPI_Type_extent(dt3,&ex3);      MPI_Type_size(dt3,&sz3);	/* Another way to express type2 */	if (lb != -3 || ub != 15 || ex3 != 18) {	    printf("type3 lb %d ub %d extent %d size %d\n", 		   (int)lb, (int)ub, (int)ex3, sz2);	}	else 	    printf( "type3 correct\n" );     MPI_Type_free( &dt1 );    MPI_Type_free( &dt2 );    MPI_Type_free( &dt3 );	    MPI_Finalize();    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -