custom defined mpi data type
Hi, I try to broadcast a self-defined data type struct, but I found that every time the last value I cannot send it out. ex: my data struct is: typedef struct image_info_type{ int width; int length; int page_num; int buffer_width; int buffer_length; long int buffer_size; long int image_size; } image_info_type; in my MPI program: ............... int count = 7; MPI_Datatype MPI_Imageinfo; MPI_Datatype types[7] = {MPI_INT, MPI_INT, MPI_INT, MPI_INT, MPI_INT, MPI_LONG, MPI_LONG}; int len[7] = {1, 1, 1, 1, 1, 1, 1}; MPI_Aint disp[7]; long int base; MPI_Address(image_info, disp); MPI_Address(&(image_info->width), disp+1); MPI_Address(&(image_info->length), disp+2); MPI_Address(&(image_info->page_num), disp+3); MPI_Address(&(image_info->buffer_width), disp+4); MPI_Address(&(image_info->buffer_length), disp+5); MPI_Address(&(image_info->buffer_size), disp+6); base = disp[0]; for(i=0; i<7; i++) disp[i] -= base; MPI_Type_struct(count, len, disp, types, &MPI_Imageinfo); MPI_Type_commit(&MPI_Imageinfo); ................... However, when I print out every information on each rank. the image_size is always 0. I cannot figure out anything wrong with my program. I would appreicate that if any one can give any suggestions. Thank you! -- Best Regards, Sufeng Niu ECASP lab, ECE department, Illinois Institute of Technology Tel: 312-731-7219
participants (1)
-
Sufeng Niu