Example: Structures


Up: Datatypes and Heterogenity Next: Strides Previous: Structures


struct { 
    char     display[50];   /* Name of display */ 
    int      maxiter;       /* max # of iterations */ 
    double   xmin, ymin;    /* lower left corner of rectangle */ 
    double   xmax, ymax;    /* upper right corner */ 
    int      width;         /* of display in pixels */ 
    int      height;        /* of display in pixels */ 
} cmdline; 

/* set up 4 blocks */ 
int          blockcounts[4] = {50,1,4,2}; 
MPI_Datatype types[4]; 
MPI_Aint     displs[4]; 
MPI_Datatype cmdtype; 

/* initialize types and displs with addresses of items */ MPI_Address( &cmdline.display, &displs[0] ); MPI_Address( &cmdline.maxiter, &displs[1] ); MPI_Address( &cmdline.xmin, &displs[2] ); MPI_Address( &cmdline.width, &displs[3] ); types[0] = MPI_CHAR; types[1] = MPI_INT; types[2] = MPI_DOUBLE; types[3] = MPI_INT; for (i = 3; i >= 0; i--) displs[i] -= displs[0]; MPI_Type_struct( 4, blockcounts, displs, types, &cmdtype ); MPI_Type_commit( &cmdtype );



Up: Datatypes and Heterogenity Next: Strides Previous: Structures