Changeset 691

Show
Ignore:
Timestamp:
10/27/09 16:23:13 (4 weeks ago)
Author:
kgao
Message:

1. remove mcoll_test warnings; 2. modify parameters of mvar APIs for understaning

Location:
trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/mpinetcdf.c

    r687 r691  
    1248512485 
    1248612486static 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) { 
     12487ncmpi_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) { 
    1249112491 
    1249212492  NC_var **varp; 
     
    1255012550  xbuf[i] = NULL; 
    1255112551  cbuf[i] = NULL;  
    12552   varp[i] = ncmpii_NC_lookupvar(ncp, varid[i]); 
     12552  varp[i] = ncmpii_NC_lookupvar(ncp, varids[i]); 
    1255312553  if(varp[i] == NULL) 
    1255412554    return NC_ENOTVAR; 
    1255512555 
    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], 
    1255812558                               &cnelems[i], &isderived, &iscontig_of_ptypes[i]); 
    1255912559  if (status != NC_NOERR) 
     
    1256312563    return NC_ECHAR; 
    1256412564 
    12565   cnelems[i] *= bufcount[i]; 
     12565  cnelems[i] *= bufcounts[i]; 
    1256612566 
    1256712567  nelems[i] = 1; 
    1256812568  for (dim = 0; dim < varp[i]->ndims; dim++) { 
    12569     if (count[i][dim] < 0) 
     12569    if (counts[i][dim] < 0) 
    1257012570      return NC_ENEGATIVECNT; 
    12571     nelems[i] *= count[i][dim]; 
     12571    nelems[i] *= counts[i][dim]; 
    1257212572  } 
    1257312573  nbytes[i] = varp[i]->xsz * nelems[i]; 
     
    1257712577  /* set the mpi file view */ 
    1257812578   
    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); 
    1258012580  if(status != NC_NOERR) 
    1258112581    return status; 
     
    1258912589      cbuf[i] = (void *)malloc( cnelems[i] * el_size[i] ); 
    1259012590      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],  
    1259212592                                cbuf[i], cnelems[i], ptype[i]); 
    1259312593      if (status != NC_NOERR) 
     
    1259612596    } else { 
    1259712597 
    12598       cbuf[i] = (void *)buf[i]; 
     12598      cbuf[i] = (void *)buffers[i]; 
    1259912599 
    1260012600    } 
     
    1266412664    xbuf[i]=NULL; 
    1266512665  } 
    12666   if (cbuf[i] != buf[i] && cbuf[i] != NULL){ 
     12666  if (cbuf[i] != buffers[i] && cbuf[i] != NULL){ 
    1266712667    free(cbuf[i]); 
    1266812668    cbuf[i]=NULL; 
     
    1267512675    */ 
    1267612676    int newnumrecs, max_numrecs; 
    12677     newnumrecs = start[i][0] + count[i][0]; 
     12677    newnumrecs = starts[i][0] + counts[i][0]; 
    1267812678    if (ncp->numrecs < newnumrecs) { 
    1267912679      ncp->numrecs = newnumrecs; 
     
    1270812708} 
    1270912709int 
    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) { 
     12710ncmpi_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) { 
    1271412714  NC_var **varp; 
    1271512715  NC *ncp; 
     
    1276612766    cbuf[i] = NULL; 
    1276712767 
    12768     varp[i] = ncmpii_NC_lookupvar(ncp, varid[i]); 
     12768    varp[i] = ncmpii_NC_lookupvar(ncp, varids[i]); 
    1276912769    if(varp[i] == NULL) 
    1277012770     return NC_ENOTVAR; 
    1277112771 
    12772     status = ncmpii_dtype_decode(datatype[i], &ptype[i], &el_size[i], 
     12772    status = ncmpii_dtype_decode(datatypes[i], &ptype[i], &el_size[i], 
    1277312773                               &cnelems[i], &isderived, &iscontig_of_ptypes[i]); 
    1277412774    if (status != NC_NOERR) 
    1277512775      return status; 
    1277612776     
    12777     MPI_Type_size(datatype[i], &size); 
     12777    MPI_Type_size(datatypes[i], &size); 
    1277812778  
    1277912779    if ( echar(varp[i]->type, ptype[i]) ) 
    1278012780    return NC_ECHAR; 
    1278112781 
    12782   cnelems[i] *= bufcount[i]; 
     12782  cnelems[i] *= bufcounts[i]; 
    1278312783 
    1278412784  nelems[i] = 1; 
    1278512785  for (dim = 0; dim < varp[i]->ndims; dim++) { 
    12786     if (count[i][dim] < 0) 
     12786    if (counts[i][dim] < 0) 
    1278712787      return NC_ENEGATIVECNT; 
    12788     nelems[i] *= count[i][dim]; 
     12788    nelems[i] *= counts[i][dim]; 
    1278912789  } 
    1279012790 
     
    1280212802  /* set the mpi file view */ 
    1280312803 
    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); 
    1280512805//  status = set_vara_fileview(ncp, &(ncp->nciop->collective_fh), varp[i], start[i], count[i], 1); 
    1280612806  if(status != NC_NOERR) 
     
    1281612816  } else { 
    1281712817 
    12818     cbuf[i] = (void *)buf[i]; 
     12818    cbuf[i] = (void *)buffers[i]; 
    1281912819 
    1282012820  } 
     
    1289112891 
    1289212892    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]); 
    1289412894    if (status != NC_NOERR) 
    1289512895      return status; 
     
    1289912899  if (xbuf[i] != cbuf[i] && xbuf[i] != NULL) 
    1290012900    free(xbuf[i]); 
    12901   if (cbuf[i] != buf[i] && cbuf[i] != NULL) 
     12901  if (cbuf[i] != buffers[i] && cbuf[i] != NULL) 
    1290212902    free(cbuf[i]); 
    1290312903  }  
     
    1291612916                   MPI_Offset *start[], MPI_Offset *count[], 
    1291712917                   void **buf, MPI_Offset *bufcount, 
    12918                    MPI_Datatype *datatype) { 
     12918                   MPI_Datatype *datatype) 
     12919{ 
    1291912920 
    1292012921  NC_var **varp; 
     
    1315613157 
    1315713158int 
    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) { 
     13159ncmpi_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) { 
    1316213163 
    1316313164  NC_var *varp; 
     
    1316813169  if(status != NC_NOERR) 
    1316913170    return status; 
    13170   varp = ncmpii_NC_lookupvar(ncp, varid[0]); 
     13171  varp = ncmpii_NC_lookupvar(ncp, varids[0]); 
    1317113172  if(varp == NULL) 
    1317213173    return NC_ENOTVAR; 
    1317313174 
    1317413175 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); 
    1317613177 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); 
    1317813179 return (status); 
    1317913180} 
  • trunk/src/lib/pnetcdf.h

    r669 r691  
    694694                   MPI_Datatype datatype); 
    695695 
    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); 
     696int 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); 
    700700int 
    701701ncmpi_iput_vara_all(int ncid, int varid, 
     
    709709                   MPI_Datatype datatype); 
    710710 
    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); 
     711int 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); 
    715715 
    716716int ncmpi_put_vara(int ncid, int varid, 
  • trunk/test/mcoll_perf/mcoll_perf.c

    r690 r691  
    2929int main(int argc, char **argv) 
    3030{ 
     31    MPI_Datatype newtype; 
    3132    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; 
    3335    int array_of_dargs[3], array_of_psizes[3]; 
     36    MPI_File fh; 
    3437    int status; 
    35     MPI_Offset sizes[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; 
    3740    MPI_Offset file_size; 
    3841    double start_time, open_time, def_time, run_time; 
    3942    double *new_open_tim, *new_def_tim, *new_run_tim; 
     43    double read_tim, new_read_tim, read_bw; 
    4044    char *pathname, filename[50]; 
    4145    char dimname[20], varname[20]; 
     
    4347    MPI_Info info; 
    4448    MPI_Offset **starts_list, **count_list; 
    45     int *bufcount_list; 
     49    MPI_Offset *bufcount_list; 
    4650    int ndims = 3; 
    4751    int nvars = 10; 
     
    5054    int length; 
    5155    int mvar_flag = 0; 
     56    NCMPI_Request request; 
    5257    NCMPI_Request *array_of_requests; 
    5358    int unlimit_flag; 
     
    112117                return 0;                
    113118    }    
    114     bufcount_list = (int *)malloc(nvars*sizeof(int)); 
     119    bufcount_list = (MPI_Offset *)malloc(nvars*sizeof(MPI_Offset)); 
    115120    if (bufcount_list == NULL){ 
    116121                printf("bufcount_list malloc error\n"); 
     
    278283             status = ncmpi_put_mvara_all(ncid, nvars, varid, 
    279284                                starts_list, count_list, 
    280                                (const void **)buf, bufcount_list, datatype_list); 
     285                               (void **)buf, bufcount_list, datatype_list); 
    281286             TEST_HANDLE_ERR(status); 
    282287        } 
     
    285290                  status = ncmpi_iput_vara_all(ncid, varid[i], 
    286291                            starts_list[i], count_list[i], 
    287                             (const void *)&(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]); 
    288293                  TEST_HANDLE_ERR(status); 
    289                   ncmpi_wait(array_of_requests[i]); 
     294                  ncmpi_wait(&array_of_requests[i]); 
    290295              } 
    291296        }  
  • trunk/test/mcoll_perf/single_mcoll_perf_record.c

    r690 r691  
    2929int main(int argc, char **argv) 
    3030{ 
     31    MPI_Datatype newtype; 
    3132    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; 
    3335    int array_of_dargs[3], array_of_psizes[3]; 
     36    MPI_File fh; 
    3437    int status; 
    35     MPI_Offset sizes[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; 
    3740    MPI_Offset file_size; 
    3841    double start_time, open_time, def_time, run_time; 
    3942    double *new_open_tim, *new_def_tim, *new_run_tim; 
     43    double read_tim, new_read_tim, read_bw; 
    4044    char *pathname, filename[50]; 
    4145    char dimname[20], varname[20]; 
     
    4347    MPI_Info info; 
    4448    MPI_Offset **starts_list, **count_list; 
    45     int *bufcount_list; 
     49    MPI_Offset *bufcount_list; 
    4650    int ndims = 3; 
    4751    int nvars = 10; 
     
    5054    int length; 
    5155    int mvar_flag = 0; 
     56    NCMPI_Request request; 
    5257    NCMPI_Request *array_of_requests; 
    5358 
     
    110115                return 0;                
    111116    }    
    112     bufcount_list = (int *)malloc(nvars*sizeof(int)); 
     117    bufcount_list = (MPI_Offset *)malloc(nvars*sizeof(MPI_Offset)); 
    113118    if (bufcount_list == NULL){ 
    114119                printf("bufcount_list malloc error\n"); 
     
    270275             status = ncmpi_put_mvara_all(ncid, nvars, varid, 
    271276                                starts_list, count_list, 
    272                                (const void **)buf, bufcount_list, datatype_list); 
     277                               (void **)buf, bufcount_list, datatype_list); 
    273278             TEST_HANDLE_ERR(status); 
    274279        } 
     
    277282                  status = ncmpi_iput_vara_all(ncid, varid[i], 
    278283                            starts_list[i], count_list[i], 
    279                             (const void *)&(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]); 
    280285                  TEST_HANDLE_ERR(status); 
    281286                  ncmpi_wait(&array_of_requests[i]); 
     
    286291                  status = ncmpi_iput_vara_all(ncid, varid[i], 
    287292                            starts_list[i], count_list[i], 
    288                             (const void *)&(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]); 
    289294                  TEST_HANDLE_ERR(status); 
    290295              }