pyvoro icon indicating copy to clipboard operation
pyvoro copied to clipboard

tesselation fails with "Command terminated" when trying to compute tesselation of large list of points

Open toneyy opened this issue 9 years ago • 4 comments

pyvoro.compute_2d_voronoi(points, [xlim,ylim], 1.0, radii=radii)

points is a list of ~90k points

Program dies with "Command terminated". Is this an issue of the underlying voro++ library or an issue of pyvoro?

toneyy avatar Dec 22 '15 14:12 toneyy

Can you please post the full command line output? It may also be helpful to run echo $? immediately after the failure (before any other commands).

This error string does not come from pyvoro or voro++. I've never tried a dataset this big before, so it may be a memory management issue or something. Knowing which signal the process is going down with (which echo $? will tell us) would be very helpful.

joe-jordan avatar Dec 28 '15 11:12 joe-jordan

Can you please clarify what [xlim, ylim] are, also? Each should be a list of an upper and lower bound.

joe-jordan avatar Dec 28 '15 11:12 joe-jordan

thanks for your answer and sorry for the late reply, i've been away over the holidays

thats how i set the boundaries: dimX = 550 dimY = 3050 _xlim = [-dimX/2.0,dimX/2.0] _ylim = [-dimY/2.0,dimY/2.0]

somehow the command line output has changed from "Command terminated" to "Killed" over the holidays (i did not even restart the machine)

running echo $? immediately after the program exits yields: "137"

which would be 128+n

i think you are right in that its an out of memory issue, and its the OS that kills my process. i will try the script on a machine with more memory :-)

toneyy avatar Jan 07 '16 09:01 toneyy

137 is the OOM (Out Of Memory) killer. 90k points is only about 3MB, plus some slack for Python.

What are the dimensions (units) of the points? How far apart from each other are they, roughly? The 1.0 you have hard coded needs to be roughly the same size as the distance between your points (to order of magnitude). Otherwise I suspect Voro++ will allocate a very large number of bins, or something like that.

joe-jordan avatar Jan 07 '16 10:01 joe-jordan