[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