ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/brains/BlockSnapshotManager.cpp
(Generate patch)

Comparing trunk/src/brains/BlockSnapshotManager.cpp (file contents):
Revision 1963 by gezelter, Thu Jan 16 15:15:17 2014 UTC vs.
Revision 1966 by gezelter, Fri Jan 24 14:17:42 2014 UTC

# Line 67 | Line 67 | namespace OpenMD {
67        // RealType avaliablePhysMem = physMem - rssMem;
68      
69        int bytesPerStuntDouble = DataStorage::getBytesPerStuntDouble(storageLayout);
70 <      int bytesPerFrame = (nRigidBodies_ + nAtoms_) * bytesPerStuntDouble;
70 >      int bytesPerCutoffGroup = DataStorage::getBytesPerStuntDouble(DataStorage::dslPosition);
71  
72 +      int bytesPerFrameData = Snapshot::getFrameDataSize();
73 +      int bytesPerFrame = (nRigidBodies_ + nAtoms_) * bytesPerStuntDouble
74 +        + nCutoffGroups_ * bytesPerCutoffGroup
75 +        + bytesPerFrameData;
76 +
77        // total number of frames that can fit in memory
78        //RealType frameCapacity = avaliablePhysMem / bytesPerFrame;
79        RealType frameCapacity = (RealType) memSize_ / (RealType) bytesPerFrame;
# Line 94 | Line 99 | namespace OpenMD {
99  
100        snapshots_.insert(snapshots_.begin(), nframes_, static_cast<Snapshot*>(NULL));  
101  
102 <      std::cout << "-----------------------------------------------------"<<std::endl;
102 >      std::cout << "-----------------------------------------------------"
103 >                << std::endl;
104        std::cout << "BlockSnapshotManager memory report:" << std::endl;
105        std::cout << "\n";
106        // std::cout << "  Physical Memory available:\t" << (unsigned long)physMem <<  " bytes" <<std::endl;
107        //std::cout << "     Resident Memory in use:\t" << (unsigned long)rssMem << " bytes" <<std::endl;
108        //std::cout << "Memory available for OpenMD:\t" << (unsigned long)avaliablePhysMem << " bytes" <<std::endl;
109 <      std::cout << "Memory requested for OpenMD:\t" << (unsigned long)memSize_ << " bytes" <<std::endl;
110 <      std::cout << "      Bytes per StuntDouble:\t" << (unsigned long)bytesPerStuntDouble <<std::endl;
111 <      std::cout << "            Bytes per Frame:\t" << (unsigned long)bytesPerFrame <<std::endl;
112 <      std::cout << "             Frame Capacity:\t" << (unsigned long)frameCapacity <<std::endl;
113 <      std::cout << "       Frames in trajectory:\t" << (unsigned long)nframes_ <<std::endl;
114 <      std::cout << "        Snapshots per Block:\t" << (unsigned long)nSnapshotPerBlock_ <<std::endl;
115 <      std::cout << "     Total number of Blocks:\t" << (unsigned long)nblocks << std::endl;
116 <      std::cout << "-----------------------------------------------------"<<std::endl;
109 >      std::cout << "Memory requested for OpenMD:\t"
110 >                << (unsigned long)memSize_ << " bytes" << std::endl;
111 >      std::cout << "        Bytes per FrameData:\t"
112 >                << (unsigned long)bytesPerFrameData << std::endl;
113 >      std::cout << "      Bytes per StuntDouble:\t"
114 >                << (unsigned long)bytesPerStuntDouble << std::endl;
115 >      std::cout << "     Bytes per Cutoff Group:\t"
116 >                << (unsigned long)bytesPerCutoffGroup << std::endl;
117 >      std::cout << "            Bytes per Frame:\t"
118 >                << (unsigned long)bytesPerFrame << std::endl;
119 >      std::cout << "             Frame Capacity:\t"
120 >                << (unsigned long)frameCapacity << std::endl;
121 >      std::cout << "       Frames in trajectory:\t"
122 >                << (unsigned long)nframes_ << std::endl;
123 >      std::cout << "        Snapshots per Block:\t"
124 >                << (unsigned long)nSnapshotPerBlock_ << std::endl;
125 >      std::cout << "     Total number of Blocks:\t"
126 >                << (unsigned long)nblocks << std::endl;
127 >      std::cout << "-----------------------------------------------------"
128 >                << std::endl;
129      
130      }
131  
# Line 178 | Line 196 | namespace OpenMD {
196          //in case, unloadBlock called multiple times
197          activeRefCount_[i - activeBlocks_.begin()]  = 0;
198        }
199 +
200 +      if (activeRefCount_[i-activeBlocks_.begin()] == 0) {
201 +        internalUnload(block);
202 +      }
203          
204        unloadSuccess = true;
205      } else {
# Line 201 | Line 223 | namespace OpenMD {
223    }
224  
225    void BlockSnapshotManager::internalUnload(int block) {
226 +    std::cerr << "called internal unload for block "<< block << "\n";
227      for (int i = blocks_[block].first; i < blocks_[block].second; ++i) {
228        delete snapshots_[i];
229        snapshots_[i] = NULL;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines