void BkgParamH5::IncrementalWriteParam(DataCube<float> &cube, H5DataSet *set, int flow, int saveWellsFrequency,int numFlows) { int testWellFrequency = saveWellsFrequency*NUMFB; // block size if (((flow+1) % (saveWellsFrequency*NUMFB) == 0 && (flow != 0)) || (flow+1) >= numFlows) { fprintf(stdout, "Writing incremental wells at flow: %d\n", flow); MemUsage("BeforeWrite"); size_t starts[3]; size_t ends[3]; cube.SetStartsEnds(starts, ends); set->WriteRangeData(starts, ends, cube.GetMemPtr()); cube.SetRange(0, cube.GetNumX(), 0, cube.GetNumY(), flow+1, flow + 1 + min(testWellFrequency,numFlows-(flow+1))); MemUsage("AfterWrite"); } }
void BkgParamH5::WriteOneFlowBlock ( DataCube<int> &cube, H5DataSet *set, int flow, int chunksize ) { // fprintf ( stdout, "Writing incremental H5-diagnostics at flow: %d\n", flow ); MemUsage ( "BeforeWrite" ); size_t starts[3]; size_t ends[3]; cube.SetStartsEnds ( starts, ends ); // here's the actual write set->WriteRangeData ( starts, ends, cube.GetMemPtr() ); // set for next iteration int nextflow = flow+1; int nextchunk = min ( chunksize,datacube_numflows- ( flow+1 ) ); cube.SetRange ( 0, cube.GetNumX(), 0, cube.GetNumY(), nextflow, nextflow+nextchunk ); MemUsage ( "AfterWrite" ); }
// set to write one compute block void BkgParamH5::WriteOneBlock ( DataCube<int> &cube, H5DataSet *set, int iBlk ) { if ( set!=NULL ) { // fprintf ( stdout, "Writing incremental H5-diagnostics at compute block: %d\n", iBlk ); MemUsage ( "BeforeWrite" ); size_t starts[3]; size_t ends[3]; cube.SetStartsEnds ( starts, ends ); // here's the actual write set->WriteRangeData ( starts, ends, cube.GetMemPtr() ); // set for next iteration int nextBlk = iBlk+1; int nextChunk = min ( 1,nFlowBlks-nextBlk ); cube.SetRange ( 0, cube.GetNumX(), 0, cube.GetNumY(), nextBlk, nextBlk+nextChunk ); MemUsage ( "AfterWrite" ); } }
// Formatted stop message std::string StopMessage(bool bMainThread, std::string Message) { return StringFromFormat("Stop [%s %i]\t%s\t%s", bMainThread ? "Main Thread" : "Video Thread", Common::CurrentThreadId(), MemUsage().c_str(), Message.c_str()); }
MemUsage operator-(const MemUsage& that) const { return MemUsage(currMin - that.currMin, currMax - that.currMax, currTot - that.currTot, peakMin - that.peakMin, peakMax - that.peakMax, peakTot - that.peakTot); }
MemUsage operator+(const MemUsage& that) const { return MemUsage(currMin + that.currMin, currMax + that.currMax, currTot + that.currTot, peakMin + that.peakMin, peakMax + that.peakMax, peakTot + that.peakTot); }