[cig-commits] r17973 - in short/3D/PyLith/trunk: pylith/topology tests/topology

brad at geodynamics.org brad at geodynamics.org
Thu Feb 24 15:27:52 PST 2011


Author: brad
Date: 2011-02-24 15:27:51 -0800 (Thu, 24 Feb 2011)
New Revision: 17973

Modified:
   short/3D/PyLith/trunk/pylith/topology/Distributor.py
   short/3D/PyLith/trunk/pylith/topology/Mesh.py
   short/3D/PyLith/trunk/pylith/topology/MeshImporter.py
   short/3D/PyLith/trunk/pylith/topology/RefineUniform.py
   short/3D/PyLith/trunk/tests/topology/test_meshmem.py
Log:
Improved memory logging for mesh through stages of creation (read, distribute, refine).

Modified: short/3D/PyLith/trunk/pylith/topology/Distributor.py
===================================================================
--- short/3D/PyLith/trunk/pylith/topology/Distributor.py	2011-02-24 21:25:33 UTC (rev 17972)
+++ short/3D/PyLith/trunk/pylith/topology/Distributor.py	2011-02-24 23:27:51 UTC (rev 17973)
@@ -81,7 +81,13 @@
     from pylith.topology.Mesh import Mesh
     newMesh = Mesh(mesh.dimension())
     ModuleDistributor.distribute(newMesh, mesh, self.partitioner)
+
+    from pylith.utils.petsc import MemoryLogger
+    sieveLogger =  MemoryLogger.singleton()
+
+    sieveLogger.stagePush(mesh.memLoggingStage)
     mesh.deallocate()
+    sieveLogger.stagePop()
 
     if self.writePartition:
       self.dataWriter.initialize(normalizer)

Modified: short/3D/PyLith/trunk/pylith/topology/Mesh.py
===================================================================
--- short/3D/PyLith/trunk/pylith/topology/Mesh.py	2011-02-24 21:25:33 UTC (rev 17972)
+++ short/3D/PyLith/trunk/pylith/topology/Mesh.py	2011-02-24 23:27:51 UTC (rev 17973)
@@ -40,6 +40,10 @@
       ModuleMesh.__init__(self, dim)
     else:
       ModuleMesh.__init__(self, dim, comm.handle)
+
+    # Name of logging stage for mesh. We progress through various
+    # stages as we read, distribute, and refine mesh.
+    self.memLoggingStage = "Mesh"
     return
 
 

Modified: short/3D/PyLith/trunk/pylith/topology/MeshImporter.py
===================================================================
--- short/3D/PyLith/trunk/pylith/topology/MeshImporter.py	2011-02-24 21:25:33 UTC (rev 17972)
+++ short/3D/PyLith/trunk/pylith/topology/MeshImporter.py	2011-02-24 23:27:51 UTC (rev 17973)
@@ -121,11 +121,13 @@
       mesh = self.distributor.distribute(mesh, normalizer)
       if self.debug:
         mesh.view("Distributed mesh.")
+      mesh.memLoggingStage = "DistributedMesh"
 
     # Refine mesh (if necessary)
     newMesh = self.refiner.refine(mesh)
     if not newMesh == mesh:
       mesh.deallocate()
+      newMesh.memLoggingStage = "RefinedMesh"
 
     # Nondimensionalize mesh (coordinates of vertices).
     newMesh.nondimensionalize(normalizer)

Modified: short/3D/PyLith/trunk/pylith/topology/RefineUniform.py
===================================================================
--- short/3D/PyLith/trunk/pylith/topology/RefineUniform.py	2011-02-24 21:25:33 UTC (rev 17972)
+++ short/3D/PyLith/trunk/pylith/topology/RefineUniform.py	2011-02-24 23:27:51 UTC (rev 17973)
@@ -71,7 +71,7 @@
       from pylith.utils.petsc import MemoryLogger
       sieveLogger =  MemoryLogger.singleton()
 
-      sieveLogger.stagePush("Mesh")      
+      sieveLogger.stagePush(mesh.memLoggingStage)      
       mesh.deallocate()
       sieveLogger.stagePop()
 

Modified: short/3D/PyLith/trunk/tests/topology/test_meshmem.py
===================================================================
--- short/3D/PyLith/trunk/tests/topology/test_meshmem.py	2011-02-24 21:25:33 UTC (rev 17972)
+++ short/3D/PyLith/trunk/tests/topology/test_meshmem.py	2011-02-24 23:27:51 UTC (rev 17973)
@@ -60,8 +60,8 @@
     Run test.
     """
 
-    filenameIn = "data/tet4.exo"
-    #filenameIn = "tri3_200m_gradient.exo"
+    #filenameIn = "data/tet4.exo"
+    filenameIn = "tri3_200m_gradient.exo"
 
     from pylith.perf.MemoryLogger import MemoryLogger
     self.logger = MemoryLogger()
@@ -92,11 +92,10 @@
     material._configure()
 
     mesh = io.read(debug=False, interpolate=False)
-    del io
 
-    self.logger.logMesh("Mesh", mesh)
+    self.logger.logMesh(mesh.memLoggingStage, mesh)
     material.ncells = MeshOps_numMaterialCells(mesh, material.id())
-    self.logger.logMaterial("Mesh", material)
+    self.logger.logMaterial(mesh.memLoggingStage, material)
     
 
     self._showStatus("After reading mesh")    
@@ -106,7 +105,6 @@
     from pylith.topology.ReverseCuthillMcKee import ReverseCuthillMcKee
     ordering = ReverseCuthillMcKee()
     ordering.reorder(mesh)
-    del ordering
 
     # Expect no memory allocation
     self.logger.memory["MeshReordering"] = 0
@@ -122,37 +120,39 @@
       distributor = Distributor()
       normalizer = Nondimensional()
       dmesh = distributor.distribute(mesh, normalizer)
-      del distributor
-      
-      self.logger.logMesh("DistributedMesh", dmesh)
+      dmesh.memLoggingStage = "DistributedMesh"
+
+      self.logger.logMesh(mesh.memLoggingStage, mesh)
+      material.ncells = MeshOps_numMaterialCells(mesh, material.id())
+      self.logger.logMaterial(mesh.memLoggingStage, material)
+    
+      self.logger.logMesh(dmesh.memLoggingStage, dmesh)
       material.ncells = MeshOps_numMaterialCells(dmesh, material.id())
-      self.logger.logMaterial("DistributedMesh", material)
+      self.logger.logMaterial(dmesh.memLoggingStage, material)
 
       self._showStatus("After distributing mesh")
 
-      mesh.deallocate()
       mesh = dmesh
-      self._showStatus("After distributing mesh and deallocation")
       
+      
     # Refine mesh (if necessary)
     from pylith.topology.RefineUniform import RefineUniform
     refiner = RefineUniform()
     rmesh = refiner.refine(mesh)
-    del refiner
+    rmesh.memLoggingStage = "RefinedMesh"
+
+    print "Unrefined mesh logging stage",mesh.memLoggingStage
+    self.logger.logMesh(mesh.memLoggingStage, mesh)
+    material.ncells = MeshOps_numMaterialCells(mesh, material.id())
+    self.logger.logMaterial(mesh.memLoggingStage, material)
     
-    self.logger.logMesh("RefinedMesh", rmesh)
+    self.logger.logMesh(rmesh.memLoggingStage, rmesh)
     material.ncells = MeshOps_numMaterialCells(rmesh, material.id())
-    self.logger.logMaterial("RefinedMesh", material)
+    self.logger.logMaterial(rmesh.memLoggingStage, material)
 
     self._showStatus("After refining mesh")
 
-    self.logger.logMesh("Mesh", mesh)
-    material.ncells = MeshOps_numMaterialCells(mesh, material.id())
-    self.logger.logMaterial("Mesh", material)
 
-    self._showStatus("After deallocating original mesh")
-
-
     return
 
 



More information about the CIG-COMMITS mailing list