Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slow and memory-costly compilation #39

Open
ilyaraz opened this issue Mar 6, 2016 · 2 comments
Open

Slow and memory-costly compilation #39

ilyaraz opened this issue Mar 6, 2016 · 2 comments

Comments

@ilyaraz
Copy link
Member

ilyaraz commented Mar 6, 2016

Currently, compiling anything that includes FALCONN takes quite a bit of time and RAM (on towhee running make python_package_install eats more than 2.4 Gb of RAM).

It's a bit painful: for instance, one can't run make python_package_install on the machine, where the website is hosted, which is unfortunate, since it'd be way more convenient to generate docs on it, instead of pulling them from somewhere.

@ludwigschmidt
Copy link
Collaborator

I also noticed that compiling the C++ wrapper test takes more time than before. I think this is because the wrapper has more template options now: 4 different table types and 2 different hash type sizes (32 bit and 64 bit integers). So overall there are 8x more template classes to generate.

I think currently the situation is inconvenient but still acceptable. In the future, we can write the wrapper so that we only instantiate the LSHTable template with one hash table wrapper class that does virtual function calls to the actual hash table internally. This will lead to slightly more runtime overhead, but should not be an issue overall. And we don't need to change the core classes, so the full template solution would still be available if necessary.

@Leonidas-from-XIV
Copy link

I had the problem as well, where compiling FALCONN took forever on Docker on Mac and then failed with what I assume was the OOM killing GCC. I ended up creating a wheel on a different machine and forcing pip to use that wheel instead of the tarball.

I think it would be nice if FALCONN would submit some pre-built wheels to PyPI, so I wouldn't need to depend on my binary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@Leonidas-from-XIV @ilyaraz @ludwigschmidt and others