Changeset 691
- Timestamp:
- 10/27/09 16:23:13 (4 weeks ago)
- Location:
- trunk
- Files:
-
- 5 modified
-
src/lib/mpinetcdf.c (modified) (17 diffs)
-
src/lib/pnetcdf.h (modified) (2 diffs)
-
test/C/pres_temp_4D.nc (modified) (previous)
-
test/mcoll_perf/mcoll_perf.c (modified) (6 diffs)
-
test/mcoll_perf/single_mcoll_perf_record.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/mpinetcdf.c
r687 r691 12485 12485 12486 12486 static int 12487 ncmpi_put_mvara_all_nonrecord(int ncid, int nvars, int varid [],12488 MPI_Offset *start [], MPI_Offset *count[],12489 void **buf , MPI_Offset *bufcount,12490 MPI_Datatype *datatype ) {12487 ncmpi_put_mvara_all_nonrecord(int ncid, int nvars, int varids[], 12488 MPI_Offset *starts[], MPI_Offset *counts[], 12489 void **buffers, MPI_Offset *bufcounts, 12490 MPI_Datatype *datatypes) { 12491 12491 12492 12492 NC_var **varp; … … 12550 12550 xbuf[i] = NULL; 12551 12551 cbuf[i] = NULL; 12552 varp[i] = ncmpii_NC_lookupvar(ncp, varid [i]);12552 varp[i] = ncmpii_NC_lookupvar(ncp, varids[i]); 12553 12553 if(varp[i] == NULL) 12554 12554 return NC_ENOTVAR; 12555 12555 12556 MPI_Type_size(datatype [i], &size);12557 status = ncmpii_dtype_decode(datatype [i], &ptype[i], &el_size[i],12556 MPI_Type_size(datatypes[i], &size); 12557 status = ncmpii_dtype_decode(datatypes[i], &ptype[i], &el_size[i], 12558 12558 &cnelems[i], &isderived, &iscontig_of_ptypes[i]); 12559 12559 if (status != NC_NOERR) … … 12563 12563 return NC_ECHAR; 12564 12564 12565 cnelems[i] *= bufcount [i];12565 cnelems[i] *= bufcounts[i]; 12566 12566 12567 12567 nelems[i] = 1; 12568 12568 for (dim = 0; dim < varp[i]->ndims; dim++) { 12569 if (count [i][dim] < 0)12569 if (counts[i][dim] < 0) 12570 12570 return NC_ENEGATIVECNT; 12571 nelems[i] *= count [i][dim];12571 nelems[i] *= counts[i][dim]; 12572 12572 } 12573 12573 nbytes[i] = varp[i]->xsz * nelems[i]; … … 12577 12577 /* set the mpi file view */ 12578 12578 12579 status = set_vara_fileview_all(ncp, &(ncp->nciop->collective_fh), nvars, varp, start , count, 0);12579 status = set_vara_fileview_all(ncp, &(ncp->nciop->collective_fh), nvars, varp, starts, counts, 0); 12580 12580 if(status != NC_NOERR) 12581 12581 return status; … … 12589 12589 cbuf[i] = (void *)malloc( cnelems[i] * el_size[i] ); 12590 12590 if (cbuf[i]==NULL) printf("cubf[%d] is NULL\n", i); 12591 status = ncmpii_data_repack((void *)buf [i], bufcount[i], datatype[i],12591 status = ncmpii_data_repack((void *)buffers[i], bufcounts[i], datatypes[i], 12592 12592 cbuf[i], cnelems[i], ptype[i]); 12593 12593 if (status != NC_NOERR) … … 12596 12596 } else { 12597 12597 12598 cbuf[i] = (void *)buf [i];12598 cbuf[i] = (void *)buffers[i]; 12599 12599 12600 12600 } … … 12664 12664 xbuf[i]=NULL; 12665 12665 } 12666 if (cbuf[i] != buf [i] && cbuf[i] != NULL){12666 if (cbuf[i] != buffers[i] && cbuf[i] != NULL){ 12667 12667 free(cbuf[i]); 12668 12668 cbuf[i]=NULL; … … 12675 12675 */ 12676 12676 int newnumrecs, max_numrecs; 12677 newnumrecs = start [i][0] + count[i][0];12677 newnumrecs = starts[i][0] + counts[i][0]; 12678 12678 if (ncp->numrecs < newnumrecs) { 12679 12679 ncp->numrecs = newnumrecs; … … 12708 12708 } 12709 12709 int 12710 ncmpi_get_mvara_all(int ncid, int nvars, int varid[],12711 MPI_Offset * start[], MPI_Offset *count[],12712 void **buf , MPI_Offset *bufcount,12713 MPI_Datatype *datatype ) {12710 ncmpi_get_mvara_all(int ncid, int nvars, int *varids, 12711 MPI_Offset **starts, MPI_Offset **counts, 12712 void **buffers, MPI_Offset *bufcounts, 12713 MPI_Datatype *datatypes) { 12714 12714 NC_var **varp; 12715 12715 NC *ncp; … … 12766 12766 cbuf[i] = NULL; 12767 12767 12768 varp[i] = ncmpii_NC_lookupvar(ncp, varid [i]);12768 varp[i] = ncmpii_NC_lookupvar(ncp, varids[i]); 12769 12769 if(varp[i] == NULL) 12770 12770 return NC_ENOTVAR; 12771 12771 12772 status = ncmpii_dtype_decode(datatype [i], &ptype[i], &el_size[i],12772 status = ncmpii_dtype_decode(datatypes[i], &ptype[i], &el_size[i], 12773 12773 &cnelems[i], &isderived, &iscontig_of_ptypes[i]); 12774 12774 if (status != NC_NOERR) 12775 12775 return status; 12776 12776 12777 MPI_Type_size(datatype [i], &size);12777 MPI_Type_size(datatypes[i], &size); 12778 12778 12779 12779 if ( echar(varp[i]->type, ptype[i]) ) 12780 12780 return NC_ECHAR; 12781 12781 12782 cnelems[i] *= bufcount [i];12782 cnelems[i] *= bufcounts[i]; 12783 12783 12784 12784 nelems[i] = 1; 12785 12785 for (dim = 0; dim < varp[i]->ndims; dim++) { 12786 if (count [i][dim] < 0)12786 if (counts[i][dim] < 0) 12787 12787 return NC_ENEGATIVECNT; 12788 nelems[i] *= count [i][dim];12788 nelems[i] *= counts[i][dim]; 12789 12789 } 12790 12790 … … 12802 12802 /* set the mpi file view */ 12803 12803 12804 status = set_vara_fileview_all(ncp, &(ncp->nciop->collective_fh), nvars, varp, start , count, 1);12804 status = set_vara_fileview_all(ncp, &(ncp->nciop->collective_fh), nvars, varp, starts, counts, 1); 12805 12805 // status = set_vara_fileview(ncp, &(ncp->nciop->collective_fh), varp[i], start[i], count[i], 1); 12806 12806 if(status != NC_NOERR) … … 12816 12816 } else { 12817 12817 12818 cbuf[i] = (void *)buf [i];12818 cbuf[i] = (void *)buffers[i]; 12819 12819 12820 12820 } … … 12891 12891 12892 12892 status = ncmpii_data_repack(cbuf[i], cnelems[i], ptype[i], 12893 (void *)buf [i], bufcount[i], datatype[i]);12893 (void *)buffers[i], bufcounts[i], datatypes[i]); 12894 12894 if (status != NC_NOERR) 12895 12895 return status; … … 12899 12899 if (xbuf[i] != cbuf[i] && xbuf[i] != NULL) 12900 12900 free(xbuf[i]); 12901 if (cbuf[i] != buf [i] && cbuf[i] != NULL)12901 if (cbuf[i] != buffers[i] && cbuf[i] != NULL) 12902 12902 free(cbuf[i]); 12903 12903 } … … 12916 12916 MPI_Offset *start[], MPI_Offset *count[], 12917 12917 void **buf, MPI_Offset *bufcount, 12918 MPI_Datatype *datatype) { 12918 MPI_Datatype *datatype) 12919 { 12919 12920 12920 12921 NC_var **varp; … … 13156 13157 13157 13158 int 13158 ncmpi_put_mvara_all(int ncid, int nvars, int varid [],13159 MPI_Offset * start[], MPI_Offset *count[],13160 void **buf , MPI_Offset *bufcount,13161 MPI_Datatype *datatype ) {13159 ncmpi_put_mvara_all(int ncid, int nvars, int varids[], 13160 MPI_Offset **starts, MPI_Offset **counts, 13161 void **buffers, MPI_Offset *bufcounts, 13162 MPI_Datatype *datatypes) { 13162 13163 13163 13164 NC_var *varp; … … 13168 13169 if(status != NC_NOERR) 13169 13170 return status; 13170 varp = ncmpii_NC_lookupvar(ncp, varid [0]);13171 varp = ncmpii_NC_lookupvar(ncp, varids[0]); 13171 13172 if(varp == NULL) 13172 13173 return NC_ENOTVAR; 13173 13174 13174 13175 if (IS_RECVAR(varp)) 13175 status = ncmpi_put_mvara_all_record(ncid, nvars, varid , start, count, buf, bufcount, datatype);13176 status = ncmpi_put_mvara_all_record(ncid, nvars, varids, starts, counts, buffers, bufcounts, datatypes); 13176 13177 else 13177 status = ncmpi_put_mvara_all_nonrecord(ncid, nvars, varid , start, count, buf, bufcount, datatype);13178 status = ncmpi_put_mvara_all_nonrecord(ncid, nvars, varids, starts, counts, buffers, bufcounts, datatypes); 13178 13179 return (status); 13179 13180 } -
trunk/src/lib/pnetcdf.h
r669 r691 694 694 MPI_Datatype datatype); 695 695 696 int ncmpi_put_mvara_all(int ncid, int nvars, int varid [],697 MPI_Offset * start[], MPI_Offset *count[],698 void **buf , MPI_Offset *bufcount,699 MPI_Datatype *datatype );696 int ncmpi_put_mvara_all(int ncid, int nvars, int varids[], 697 MPI_Offset **starts, MPI_Offset **counts, 698 void **buffers, MPI_Offset *bufcounts, 699 MPI_Datatype *datatypes); 700 700 int 701 701 ncmpi_iput_vara_all(int ncid, int varid, … … 709 709 MPI_Datatype datatype); 710 710 711 int ncmpi_get_mvara_all(int ncid, int nvars, int varid [],712 MPI_Offset * start[], MPI_Offset *count[],713 void **buf , MPI_Offset *bufcount,714 MPI_Datatype *datatype );711 int ncmpi_get_mvara_all(int ncid, int nvars, int varids[], 712 MPI_Offset **starts, MPI_Offset **counts, 713 void **buffers, MPI_Offset *bufcounts, 714 MPI_Datatype *datatypes); 715 715 716 716 int ncmpi_put_vara(int ncid, int varid, -
trunk/test/mcoll_perf/mcoll_perf.c
r690 r691 29 29 int main(int argc, char **argv) 30 30 { 31 MPI_Datatype newtype; 31 32 int i, j, array_of_gsizes[3],array_of_distribs[3]; 32 int order, nprocs, len, **buf, bufcount, mynod; 33 int order, nprocs, len, **buf, mynod; 34 MPI_Offset bufcount; 33 35 int array_of_dargs[3], array_of_psizes[3]; 36 MPI_File fh; 34 37 int status; 35 MPI_Offset s izes[3], array_of_starts[3];36 double write_time, *new_write_tim, write_bw;38 MPI_Offset starts[3], sizes[3], array_of_starts[3]; 39 double stim, write_time, *new_write_tim, write_bw; 37 40 MPI_Offset file_size; 38 41 double start_time, open_time, def_time, run_time; 39 42 double *new_open_tim, *new_def_tim, *new_run_tim; 43 double read_tim, new_read_tim, read_bw; 40 44 char *pathname, filename[50]; 41 45 char dimname[20], varname[20]; … … 43 47 MPI_Info info; 44 48 MPI_Offset **starts_list, **count_list; 45 int *bufcount_list;49 MPI_Offset *bufcount_list; 46 50 int ndims = 3; 47 51 int nvars = 10; … … 50 54 int length; 51 55 int mvar_flag = 0; 56 NCMPI_Request request; 52 57 NCMPI_Request *array_of_requests; 53 58 int unlimit_flag; … … 112 117 return 0; 113 118 } 114 bufcount_list = ( int *)malloc(nvars*sizeof(int));119 bufcount_list = (MPI_Offset *)malloc(nvars*sizeof(MPI_Offset)); 115 120 if (bufcount_list == NULL){ 116 121 printf("bufcount_list malloc error\n"); … … 278 283 status = ncmpi_put_mvara_all(ncid, nvars, varid, 279 284 starts_list, count_list, 280 ( constvoid **)buf, bufcount_list, datatype_list);285 (void **)buf, bufcount_list, datatype_list); 281 286 TEST_HANDLE_ERR(status); 282 287 } … … 285 290 status = ncmpi_iput_vara_all(ncid, varid[i], 286 291 starts_list[i], count_list[i], 287 ( constvoid *)&(buf[i][0]), bufcount_list[i], MPI_INT, &array_of_requests[i]);292 (void *)&(buf[i][0]), bufcount_list[i], MPI_INT, &array_of_requests[i]); 288 293 TEST_HANDLE_ERR(status); 289 ncmpi_wait( array_of_requests[i]);294 ncmpi_wait(&array_of_requests[i]); 290 295 } 291 296 } -
trunk/test/mcoll_perf/single_mcoll_perf_record.c
r690 r691 29 29 int main(int argc, char **argv) 30 30 { 31 MPI_Datatype newtype; 31 32 int i, j, array_of_gsizes[3],array_of_distribs[3]; 32 int order, nprocs, len, **buf, bufcount, mynod; 33 int order, nprocs, len, **buf, mynod; 34 MPI_Offset bufcount; 33 35 int array_of_dargs[3], array_of_psizes[3]; 36 MPI_File fh; 34 37 int status; 35 MPI_Offset s izes[3], array_of_starts[3];36 double write_time, *new_write_tim, write_bw;38 MPI_Offset starts[3], sizes[3], array_of_starts[3]; 39 double stim, write_time, *new_write_tim, write_bw; 37 40 MPI_Offset file_size; 38 41 double start_time, open_time, def_time, run_time; 39 42 double *new_open_tim, *new_def_tim, *new_run_tim; 43 double read_tim, new_read_tim, read_bw; 40 44 char *pathname, filename[50]; 41 45 char dimname[20], varname[20]; … … 43 47 MPI_Info info; 44 48 MPI_Offset **starts_list, **count_list; 45 int *bufcount_list;49 MPI_Offset *bufcount_list; 46 50 int ndims = 3; 47 51 int nvars = 10; … … 50 54 int length; 51 55 int mvar_flag = 0; 56 NCMPI_Request request; 52 57 NCMPI_Request *array_of_requests; 53 58 … … 110 115 return 0; 111 116 } 112 bufcount_list = ( int *)malloc(nvars*sizeof(int));117 bufcount_list = (MPI_Offset *)malloc(nvars*sizeof(MPI_Offset)); 113 118 if (bufcount_list == NULL){ 114 119 printf("bufcount_list malloc error\n"); … … 270 275 status = ncmpi_put_mvara_all(ncid, nvars, varid, 271 276 starts_list, count_list, 272 ( constvoid **)buf, bufcount_list, datatype_list);277 (void **)buf, bufcount_list, datatype_list); 273 278 TEST_HANDLE_ERR(status); 274 279 } … … 277 282 status = ncmpi_iput_vara_all(ncid, varid[i], 278 283 starts_list[i], count_list[i], 279 ( constvoid *)&(buf[i][0]), bufcount_list[i], MPI_INT, &array_of_requests[i]);284 (void *)&(buf[i][0]), bufcount_list[i], MPI_INT, &array_of_requests[i]); 280 285 TEST_HANDLE_ERR(status); 281 286 ncmpi_wait(&array_of_requests[i]); … … 286 291 status = ncmpi_iput_vara_all(ncid, varid[i], 287 292 starts_list[i], count_list[i], 288 ( constvoid *)&(buf[i][0]), bufcount_list[i], MPI_INT, &array_of_requests[i]);293 (void *)&(buf[i][0]), bufcount_list[i], MPI_INT, &array_of_requests[i]); 289 294 TEST_HANDLE_ERR(status); 290 295 }
![(please configure the [header_logo] section in trac.ini)](/projects/parallel-netcdf/chrome/common/trac_banner.png)