rivetTDA / rivet

RIVET is a tool for Topological Data Analysis, in particular two-parameter persistent homology.
GNU General Public License v3.0
73 stars 24 forks source link

RIVET Crashes on Relatively Small Examples for H0 with light binning. #76

Closed mlesnick closed 6 years ago

mlesnick commented 7 years ago

This is known to be a issue with memory the efficiency of the code that builds the path through the arrangement. It impacts performance on uncoarsened or very lightly coarsened examples. For example 50x50 grids are not a problem, in our experience, but 100x100 can be.

For example, I tried to use RIVET on the Senate data (attached) for H0 with no binning, and with a 32x200 grid, on OS X with 16GB of RAM. This crashes with Killed: 9 as the path is constructed. With a 150x32 grid, the computation finishes.

mlesnick commented 7 years ago

Original comment by M L (GitHub: mlesnick):


Bryn confirms that he saw the same crash for 200x200. (Not surprising since we are using the same type of Mac Laptop.)

mlesnick commented 6 years ago

I've fixed this in my fork. I'm planning to do a pull request soon. My fix addresses the memory issue in the path building code in arrangement_builder.cpp, and polishes a number of other things there. However, this code could use some more cleanup; see the todos in the code.

mlesnick commented 6 years ago

The fix described above is now merged.