Opened 17 years ago

Closed 15 years ago

#70 closed defect (fixed)

Memory useage of Create_mesh_from_regions

Reported by: Nick <nick.bartzis@…> Owned by: nick
Priority: low Milestone:
Component: Efficiency and optimisation Version: 1.0
Severity: normal Keywords:
Cc:

Description

create_mesh_from_regions, starts uses alot of swap mem when the mesh is over about 600,000 triangles. it will work for jobs around 1,200,000 triangles however starts using alot of swap memory with mesh over 1,500,000 and tested at 3,500,000. In this case python uses about 1% (or less) of the CPU and the rest is in manageing the swap memory.

these tests were on Cyclone, each node has 2 G RAM... with more RAM it could be assumed that more triangles can be possible.

Is it possible to optimises this part to handle more triangles?

Change History (5)

comment:1 Changed 17 years ago by Nick <nick.bartzis@…>

Hi Duncan

I just read my comments and they make little sense

Here is hopefully a more clear discription

"create_mesh_from_regions", starts using swap memory when the mesh has over about 600,000 triangles. It will work for meshes with around 1,200,000 triangles however starts using alot of swap memory with meshes with over 1,500,000 triangles and has been tested with a mesh containing 3,500,000 triangles. In both the 1.5M and 3.5M tests, python used about 1% (or less) of the CPU and the rest is used to manage the swap memory. In the 1.2M example the CPU was mainly(around 100% of one CPU on cyclone) used by python even though swap memory was beening use.

comment:2 Changed 17 years ago by Nick <nick.bartzis@…>

Furthermore

i have discovered may work for meshes up to 1.2 M however it will not work further in the program eg in "fit_to_mesh". Here is the results of a model with 800,000 triangle


+---------------------------------------------------------- | Wed Apr 19 00:48:25 2006. Evaluating function fit_to_mesh +---------------------------------------------------------- | Arguments: (Array: (400262, 2), Array: (798601, 3), Array: (2781349, 2), Array: (2781349,)) | Keyword Args: {'alpha': 0.1, 'mesh_origin': (-1, 240000.0, 7580000.0), 'precrop': True, 'data_origin': (50, 0.0, 0.0), 'verbose': True} | Reason: No cached result +----------------------------------------------------------

Building mesh Checking mesh integrity Mesh integrity checked Building interpolation matrix Getting boundary polygon Getting indices inside mesh boundary Checking input to inside_polygon Checking input to separate_points_by_polygon check Allocating array for indices Calling C-version of inside poly Done - 1547950 points outside mesh have been cropped. Number of datapoints: 1233399 Number of basis functions: 400262 Doing 0 of 1233399 Doing 123340 of 1233399 Doing 246680 of 1233399 Doing 370020 of 1233399 Doing 493360 of 1233399 Doing 616700 of 1233399 Doing 740040 of 1233399 Doing 863380 of 1233399 Doing 986720 of 1233399 Doing 1110060 of 1233399 Building smoothing matrix


and program stops running and exits with a signal(9)?? the swap memory get heavy used prior to it being stopped (or killed) by the system

I adjusted the number of triangles to about 430,000 and the model runs fine.

I understand this is not of huge priority now and we need to get a lot of info on what needs to be optimised.

cheers

comment:3 Changed 16 years ago by anonymous

  • Priority changed from normal to low

comment:4 Changed 15 years ago by duncan

  • Owner changed from Duncan to nick

Create mesh is more memory efficient now, so check out the most recent copy

comment:5 Changed 15 years ago by nick

  • Resolution set to fixed
  • Status changed from new to closed

Excellent, i will run some tests to see where the limitations are now.

Note: See TracTickets for help on using tickets.