-
-
Notifications
You must be signed in to change notification settings - Fork 638
Integration of a new optional package for Khovanov homology #40081
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
base: develop
Are you sure you want to change the base?
Conversation
Documentation preview for this PR (built with commit 8644000; changes) is ready! 🎉 |
I'm quite surprised to see another segmentation fault. It occurs in the CI-Linux-incremental-run on all Ubuntu and Debian jobs in Line 1293 of
From the log-file:
Unfortunately, I can't reproduce this locally, even in a Docker container running the exact same image: |
In the current commit, I switched the installation to binary wheels. This fixes the issue explained in my previous comment. Two of the five CI-Linux-incremental jobs failed for other reasons, while all remaining jobs ran the optional Khoca tests and all tests passed. For example, in the case of Ubuntu jammy:
All other unsuccessful CI jobs appear to have failed for independent reasons (except for meson-tests), too. |
Status after merge with 10.7.beta4All five tests for CI-Linux-incremental are now green, and all tests with the optional package pass. Regarding the segmentation fault observed at #40081 (comment), I have made further unsuccessful attempts to reproduce it. Specifically, I ran But the following was different from the tests with the binary wheel installation. Although the number of tests counted in
This was accordingly in the segfault runs. However, it is likely an independent issue in the doctest framework. Again, the cause of all failed CI runs seems to have nothing to do with this PR. |
As explained at LLewark/khoca#3 (comment), this issue is unrelated to the Khoca package. The sporadic Therefore, we can now proceed with the Khoca integration. @LLewark, @alexchandler100, FYI. |
Sage has a native implementation of Khovanov homology. Unfortunately, it's not very performant. For knots and links with more than six crossings, the calculation takes more than a second on a ThinkPad with an i7 (i7-1165G7 @ 2.80GHz) processor (running Ubuntu under WSL2). For a knot with nine crossings, it takes more than a minute, and for 10 crossings, the calculation breaks (after about an hour) with a
Pari stack overflow
:If we do the same with the optional package
Khoca
implemented in this PR, we get the following: The knot with 9 crossings takes less than half a second and the example with 10 crossings terminates after less than two seconds:Even knots with 13 crossing only need a few seconds:
The software behind the optional package is Khoca. It was written in C++ by Lukas Lewark. I packaged it on PyPI for integration into Sage (see LLewark/khoca#3).
Currently, there is still an issue with the PyPI package regarding integration with Sage, as both use the Pari library (see LLewark/khoca#3 (comment)). This occurs sporadically and triggers a system error that occurs at
cypari2/stack.pyx
. The error disappears when the last action is re-executed. I'm leaving this PR as a draft until the issue is resolved.📝 Checklist
⌛ Dependencies