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

Use flow decomposition code from David Aulicino as a benchmark #169

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

saraedum
Copy link
Member

@saraedum saraedum commented Jun 3, 2022

David Aulicino shared a Jupyter notebook with us that (in June 2021)
took about 12h to complete. This adds a simplified version of that
notebook that contains the bits that take 99% of the runtime.

The computationally difficult part is computing all the flow
decompositions for directions coming from saddle connections up to some
length.

(In the original notebook that length was given as 400 for the square of
the actual length.)

David Aulicino shared a Jupyter notebook with us that (in June 2021)
took about 12h to complete. This adds a simplified version of that
notebook that contains the bits that take 99% of the runtime.

The computationally difficult part is computing all the flow
decompositions for directions coming from saddle connections up to some
length.

(In the original notebook that length was given as 400 for the square of
the actual length.)
@saraedum
Copy link
Member Author

saraedum commented Jun 3, 2022

We're now down to 20s for this computation. (But I am starting to doubt that the original computation went only to sqrt(400) and not to 400…then again, I am pretty sure that that's what we had back then and it's also what David wrote in his message.)

@saraedum
Copy link
Member Author

saraedum commented Jun 3, 2022

Parallelizing and doing this over a number field, I'm down to 2s + SageMath startup.

@saraedum
Copy link
Member Author

saraedum commented Jun 3, 2022

Using a Delaunay triangulation, 1s. But I am now probably at the point where I am measuring how quickly my CPU ramps up to boost frequency.

@saraedum
Copy link
Member Author

saraedum commented Jun 3, 2022

If there's symmetries in this surface (didn't check,) then we could use #35 to further speed this up.

@saraedum
Copy link
Member Author

saraedum commented Jun 3, 2022

image

Apart from the SageMath startup, the time is spent in the saddle connection search, flipping edges to get a unique large edge, and not much time in the flow decomposition algorithm. That's not too surprising and what I expect from my last round of speeding up orbit closure computations.

A lot of time is spent inside these steps multplying exact real numbers (I marked some in green.) That's what disappears when using a number field instead.

@github-actions
Copy link

Documentation preview for this PR is ready! 🎉
Built with commit: 564e647

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

Successfully merging this pull request may close these issues.

1 participant