Ignore:
Timestamp:
05/22/17 18:11:12 (7 years ago)
Author:
mhnguyen
Message:

Updating compressed index output on using 2-level server

+) Update compressed index output with new grid distribution

Test
+) On Curie
+) test_complete:

  • Mode: classical and 2 level server
  • config: 4 clients + 4 servers
  • passed
File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/io/nc4_data_output.cpp

    r1132 r1143  
    379379                     if (domain->hasLonLat) 
    380380                     { 
    381                        // SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
    382                        // SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    383381                       SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
    384382                       SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
     
    396394                         start[0]=0 ; 
    397395                         count[0]=0 ; 
    398                          // SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
    399                          // SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    400  
    401396                         SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
    402397                         SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
     
    405400                       {  
    406401                         start[0]=domain->zoom_jbegin-domain->global_zoom_jbegin; 
    407                          count[0]=domain->zoom_nj; 
    408                          // CArray<double,1> lat = domain->latvalue(Range(fromStart,toEnd,domain->zoom_ni)); 
     402                         count[0]=domain->zoom_nj;                          
    409403                         CArray<double,1> lat = writtenLat(Range(fromStart,toEnd,domain->zoom_ni)); 
    410404                         SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0,&start,&count); 
    411405 
    412406                         start[0]=domain->zoom_ibegin-domain->global_zoom_ibegin; 
    413                          count[0]=domain->zoom_ni; 
    414                          // CArray<double,1> lon=domain->lonvalue(Range(0,domain->zoom_ni-1)); 
     407                         count[0]=domain->zoom_ni;                          
    415408                         CArray<double,1> lon = writtenLon(Range(0,domain->zoom_ni-1)); 
    416409                         SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0,&start,&count); 
     
    439432                     count[0] = domain->zoom_nj; 
    440433                   } 
    441  
    442                  // SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0, &start, &count); 
    443                  // SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0, &start, &count); 
     434                  
    444435                   SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0, &start, &count); 
    445436                   SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0, &start, &count); 
     
    463454                     count[0] = domain->zoom_nj; 
    464455                   } 
    465  
    466                    // SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0, &start, &count); 
     456                    
    467457                   SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0, &start, &count); 
    468458                 } 
     
    13901380           SuperClassWriter::addAttribute("compress", compress.str(), &varId); 
    13911381 
    1392            grid->computeCompressedIndex(); 
     1382           // grid->computeCompressedIndex(); 
    13931383 
    13941384           CArray<int, 1> indexes(grid->getNumberWrittenIndexes()); 
    1395            std::map<int, CArray<size_t, 1> >::const_iterator it; 
    1396            for (it = grid->outIndexFromClient.begin(); it != grid->outIndexFromClient.end(); ++it) 
    1397            { 
    1398              const CArray<size_t, 1> compressedIndexes = grid->compressedOutIndexFromClient[it->first]; 
    1399              for (int i = 0; i < it->second.numElements(); i++) 
    1400                indexes(compressedIndexes(i)) = it->second(i); 
    1401            } 
     1385           indexes = grid->localIndexToWriteOnServer; 
     1386           // std::map<int, CArray<size_t, 1> >::const_iterator it; 
     1387           // for (it = grid->outIndexFromClient.begin(); it != grid->outIndexFromClient.end(); ++it) 
     1388           // { 
     1389           //   const CArray<size_t, 1> compressedIndexes = grid->compressedOutIndexFromClient[it->first]; 
     1390           //   for (int i = 0; i < it->second.numElements(); i++) 
     1391           //     indexes(compressedIndexes(i)) = it->second(i); 
     1392           // } 
    14021393 
    14031394           switch (SuperClass::type) 
     
    14561447               } 
    14571448 
    1458                const std::vector<int>& indexesToWrite = domain->getIndexesToWrite(); 
    1459                indexes.resize(indexesToWrite.size()); 
    1460                for (int n = 0; n < indexes.numElements(); ++n) 
    1461                  indexes(n) = indexesToWrite[n]; 
     1449               // const std::vector<int>& indexesToWrite = domain->getIndexesToWrite(); 
     1450               // indexes.resize(indexesToWrite.size()); 
     1451               // for (int n = 0; n < indexes.numElements(); ++n) 
     1452               //   indexes(n) = indexesToWrite[n]; 
     1453 
     1454               indexes.resize(domain->compressedIndexToWriteOnServer.numElements()); 
     1455               indexes = domain->compressedIndexToWriteOnServer; 
    14621456 
    14631457               isDistributed = domain->isDistributed(); 
     
    14841478               compress = axisId; 
    14851479 
    1486                const std::vector<int>& indexesToWrite = axis->getIndexesToWrite(); 
    1487                indexes.resize(indexesToWrite.size()); 
    1488                for (int n = 0; n < indexes.numElements(); ++n) 
    1489                  indexes(n) = indexesToWrite[n]; 
     1480               // const std::vector<int>& indexesToWrite = axis->getIndexesToWrite(); 
     1481               // indexes.resize(indexesToWrite.size()); 
     1482               // for (int n = 0; n < indexes.numElements(); ++n) 
     1483               //   indexes(n) = indexesToWrite[n]; 
     1484 
     1485               indexes.resize(axis->compressedIndexToWriteOnServer.numElements()); 
     1486               indexes = axis->compressedIndexToWriteOnServer; 
    14901487 
    14911488               isDistributed = axis->isDistributed(); 
     
    15341531           } 
    15351532 
    1536            if (!dims.empty()) 
    1537              grid->computeCompressedIndex(); 
     1533           // if (!dims.empty()) 
     1534           //   grid->computeCompressedIndex(); 
    15381535         } 
    15391536 
     
    21812178              case (ONE_FILE) : 
    21822179              { 
    2183                 // const std::vector<int>& nZoomBeginGlobal = grid->getDistributionServer()->getZoomBeginGlobal(); 
    2184                 // const std::vector<int>& nZoomBeginServer = grid->getDistributionServer()->getZoomBeginServer(); 
    2185                 // const std::vector<int>& nZoomSizeServer  = grid->getDistributionServer()->getZoomSizeServer(); 
    2186  
    2187                 // std::vector<StdSize> start, count; 
    2188  
    2189                 // if (field->getUseCompressedOutput()) 
    2190                 // { 
    2191                 //   if (grid->isCompressible()) 
    2192                 //   { 
    2193                 //     start.push_back(grid->getOffsetWrittenIndexes()); 
    2194                 //     count.push_back(grid->getNumberWrittenIndexes()); 
    2195                 //   } 
    2196                 //   else 
    2197                 //   { 
    2198                 //     CArray<int,1> axisDomainOrder = grid->axis_domain_order; 
    2199                 //     std::vector<StdString> domainList = grid->getDomainList(); 
    2200                 //     std::vector<StdString> axisList   = grid->getAxisList(); 
    2201                 //     int numElement = axisDomainOrder.numElements(); 
    2202                 //     int idxDomain = domainList.size() - 1, idxAxis = axisList.size() - 1; 
    2203                 //     int idx = nZoomBeginGlobal.size() - 1; 
    2204  
    2205                 //     start.reserve(nZoomBeginGlobal.size()); 
    2206                 //     count.reserve(nZoomBeginGlobal.size()); 
    2207  
    2208  
    2209                 //     for (int i = numElement - 1; i >= 0; --i) 
    2210                 //     { 
    2211                 //       if (2 == axisDomainOrder(i)) 
    2212                 //       { 
    2213                 //         CDomain* domain = CDomain::get(domainList[idxDomain]); 
    2214  
    2215                 //         if (domain->isCompressible()) 
    2216                 //         { 
    2217                 //           start.push_back(domain->getOffsetWrittenIndexes()); 
    2218                 //           count.push_back(domain->getNumberWrittenIndexes()); 
    2219                 //           idx -= 2; 
    2220                 //         } 
    2221                 //         else 
    2222                 //         { 
    2223                 //           if ((domain->type) != CDomain::type_attr::unstructured) 
    2224                 //           { 
    2225                 //             start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2226                 //             count.push_back(nZoomSizeServer[idx]); 
    2227                 //           } 
    2228                 //           --idx; 
    2229                 //           start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2230                 //           count.push_back(nZoomSizeServer[idx]); 
    2231                 //           --idx; 
    2232                 //         } 
    2233                 //         --idxDomain; 
    2234                 //       } 
    2235                 //       else if (1 == axisDomainOrder(i)) 
    2236                 //       { 
    2237                 //         CAxis* axis = CAxis::get(axisList[idxAxis]); 
    2238  
    2239                 //         if (axis->isCompressible()) 
    2240                 //         { 
    2241                 //           start.push_back(axis->getOffsetWrittenIndexes()); 
    2242                 //           count.push_back(axis->getNumberWrittenIndexes()); 
    2243                 //         } 
    2244                 //         else 
    2245                 //         { 
    2246                 //           start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2247                 //           count.push_back(nZoomSizeServer[idx]); 
    2248                 //         } 
    2249  
    2250                 //         --idxAxis; 
    2251                 //         --idx; 
    2252                 //       } 
    2253                 //     } 
    2254                 //   } 
    22552180                const std::vector<int>& nZoomBeginGlobal = grid->getDistributionServer()->getZoomBeginGlobal(); 
    22562181                const std::vector<int>& nZoomBeginServer = grid->getDistributionServer()->getZoomBeginServer(); 
     
    23282253                else 
    23292254                { 
    2330                   // CArray<int,1> axisDomainOrder = grid->axis_domain_order; 
    2331                   // std::vector<StdString> domainList = grid->getDomainList(); 
    2332                   // std::vector<StdString> axisList   = grid->getAxisList(); 
    2333                   // int numElement = axisDomainOrder.numElements(); 
    2334                   // int idxDomain = domainList.size() - 1, idxAxis = axisList.size() - 1; 
    2335                   // int idx = nZoomBeginGlobal.size() - 1; 
    2336  
    2337                   // start.reserve(nZoomBeginGlobal.size()); 
    2338                   // count.reserve(nZoomBeginGlobal.size()); 
    2339  
    2340                   // for (int i = numElement - 1; i >= 0; --i) 
    2341                   // { 
    2342                   //   if (2 == axisDomainOrder(i)) 
    2343                   //   { 
    2344                   //     CDomain* domain = CDomain::get(domainList[idxDomain]); 
    2345                   //     if ((domain->type) != CDomain::type_attr::unstructured) 
    2346                   //     { 
    2347                   //       start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2348                   //       count.push_back(nZoomSizeServer[idx]); 
    2349                   //     } 
    2350                   //     --idx ; 
    2351                   //     start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2352                   //     count.push_back(nZoomSizeServer[idx]); 
    2353                   //     --idx ; 
    2354                   //     --idxDomain; 
    2355                   //   } 
    2356                   //   else if (1 == axisDomainOrder(i)) 
    2357                   //   { 
    2358                   //     start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2359                   //     count.push_back(nZoomSizeServer[idx]); 
    2360                   //     --idx; 
    2361                   //   } 
    2362                   //   else 
    2363                   //   { 
    2364                   //     if (1 == axisDomainOrder.numElements()) 
    2365                   //     { 
    2366                   //       start.push_back(0); 
    2367                   //       count.push_back(1); 
    2368                   //     } 
    2369                   //     --idx; 
    2370                   //   } 
    23712255                  CArray<int,1> axisDomainOrder = grid->axis_domain_order; 
    23722256                  std::vector<StdString> domainList = grid->getDomainList(); 
     
    23862270                      if ((domain->type) != CDomain::type_attr::unstructured) 
    23872271                      { 
    2388                         // start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2389                         // count.push_back(nZoomSizeServer[idx]); 
    2390                         // start.push_back((domain->getStartWriteIndex())[idx]); 
    2391                         // count.push_back((domain->getCountWriteIndex())[idx]); 
    23922272                        start.push_back(domain->zoom_jbegin - domain->global_zoom_jbegin); 
    23932273                        count.push_back(domain->zoom_nj); 
    23942274                      } 
    23952275                      --idx ; 
    2396                       // start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2397                       // count.push_back(nZoomSizeServer[idx]); 
    2398                       // start.push_back((domain->getStartWriteIndex())[idx]); 
    2399                       // count.push_back((domain->getCountWriteIndex())[idx]); 
     2276 
    24002277                        start.push_back(domain->zoom_ibegin - domain->global_zoom_ibegin); 
    24012278                        count.push_back(domain->zoom_ni); 
     
    24052282                    else if (1 == axisDomainOrder(i)) 
    24062283                    { 
    2407                       CAxis* axis = CAxis::get(axisList[idxAxis]); 
    2408                       // start.push_back(axis->getStartWriteIndex()); 
    2409                       // count.push_back(axis->getCountWriteIndex()); 
     2284                        CAxis* axis = CAxis::get(axisList[idxAxis]); 
    24102285                        start.push_back(axis->zoom_begin - axis->global_zoom_begin); 
    24112286                        count.push_back(axis->zoom_n); 
Note: See TracChangeset for help on using the changeset viewer.