Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Two improvements:
Reduces memory footprint of our certificates. We stored previously also the interval Jacobian used in the certification step. This change reduces the stored
AcbMatrix
to only one interval that contains the unique solution. On my test on a small 8 x 8 system this should reduce the memory footprint of a single certificate ca. by a good amount. I did not benchmark it but from my investigation a 5 - 10x reduction should be possible (more dramatic for larger system due to the n^2 elements of the Jacobian). My motivation is that I need to certify a system with almost 5 Million solutions and my Julia process ended up allocating almost 70gb of memory (and as a result ended up doing lots of memory swapping). So a 5 - 10x reduction makes the whole computation much more feasible again. (Did not yet run the computation again but will report back what peak memory consumption was).Enable multi threading of the certificate computation. Obvious easy win here. The 3264 certification got a speed up of 4x using 8 threads. I expect a bigger speed up when the system is larger