Ignore:
Timestamp:
01/19/13 19:31:15 (11 years ago)
Author:
ymipsl
Message:

Performance improvment on Lustre

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/output/onetcdf4.cpp

    r401 r413  
    350350            it  = sizes.begin(), end = sizes.end(); 
    351351         int i = 0; 
    352        
     352         cout<<"nc Size -->"<<sizes.size()<<endl ; 
    353353         if (iddims.begin()->compare(this->getUnlimitedDimensionName()) == 0) 
    354354         { 
     
    379379          
    380380      } 
    381  
    382       //--------------------------------------------------------------- 
    383  
     381       
     382                      
     383  
    384384      template <> 
    385385         void CONetCDF4::writeData_(int grpid, int varid, 
     
    425425         this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 
    426426      } 
     427 
     428      void CONetCDF4::writeTimeAxisData(const CArray<double, 1>& data, const StdString & name, 
     429                                        bool collective, StdSize record, bool isRoot) 
     430      { 
     431         int grpid = this->getCurrentGroup(); 
     432         int varid = this->getVariable(name); 
     433          
     434         map<int,size_t>::iterator it=timeAxis.find(varid) ; 
     435         if (it==timeAxis.end()) timeAxis[varid]=record ; 
     436         else  
     437         { 
     438           if (it->second >= record) return ; 
     439           else it->second =record ; 
     440         } 
     441          
     442         StdSize array_size = 1; 
     443         std::vector<StdSize> sstart, scount; 
     444          
     445         if (this->wmpi && collective) 
     446         CheckError(nc_var_par_access(grpid, varid, NC_COLLECTIVE)); 
     447         if (this->wmpi && !collective) 
     448         CheckError(nc_var_par_access(grpid, varid, NC_INDEPENDENT)); 
     449          
     450         this->getWriteDataInfos(name, record, array_size,  sstart, scount, NULL, NULL); 
     451         if (using_netcdf_internal)  if (!isRoot) { sstart[0]=sstart[0]+1 ; scount[0]=0 ;} 
     452         this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 
     453       } 
    427454 
    428455      //--------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.