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

📄 commit.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
/* * This is a test of Type_commit.  This checks to see if Type_commit * (or Type_struct) replaces a struct with a contiguous type, and * that that type is constructed correctly. */#include "mpi.h"#include <stdio.h>#if defined(NEEDS_STDLIB_PROTOTYPES)#include "protofix.h"#endifint main( int argc, char **argv ){    int          nsize, n2size;    MPI_Aint     nlb, nub, n2lb, n2ub;    MPI_Datatype ntype, n2type;    MPI_Aint     displs[2];    MPI_Datatype types[2];    int          blockcounts[2];    double       myarray[10];    int          err = 0;    MPI_Init( &argc, &argv );        MPI_Address( &myarray[0], &displs[0] );    MPI_Address( &myarray[3], &displs[1] );    blockcounts[0] = 3;    blockcounts[1] = 1;    displs[1] = displs[1] - displs[0];    displs[0] = 0;    types[0] = MPI_DOUBLE;    types[1] = MPI_DOUBLE;    MPI_Type_struct( 2, blockcounts, displs, types, &ntype );    MPI_Type_commit( &ntype );    MPI_Type_size( ntype, &nsize );    MPI_Type_lb( ntype, &nlb );    MPI_Type_ub( ntype, &nub );    if (nlb != 0) {	err++;	printf( "LB for struct is %d\n", (int)nlb );    }    if (nub != 4 * sizeof(double)) {	err++;	printf( "UB for struct is %d != %d\n", (int)nub, 		4 * (int)sizeof(double) );    }    if (nsize != 4 * sizeof(double)) {	err++;	printf( "Size for struct %d != %d\n", nsize, 4 * (int)sizeof(double) );    }    MPI_Type_contiguous( 3, ntype, &n2type );    MPI_Type_commit( &n2type );    MPI_Type_size( n2type, &n2size );    MPI_Type_lb( n2type, &n2lb );    MPI_Type_ub( n2type, &n2ub );    if (n2size != 3 * nsize) {	err++;	printf( "Size of contig type %d != %d\n", n2size, 3*nsize );    }    if (n2lb != 0) {	err++;	printf( "LB for contig is %d\n", (int)n2lb );    }    if (n2ub != 3 * nub) {	err++;	printf( "UB for contig %d != %d\n", (int)n2ub, 3 * (int)nub );    }    if (err) {	printf( "Found %d errors\n", err );    }    else {	printf( " No Errors\n" );    }    MPI_Type_free( &ntype );    MPI_Type_free( &n2type );    MPI_Finalize();    return 0;}

⌨️ 快捷键说明

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