-
Notifications
You must be signed in to change notification settings - Fork 94
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
Speed up dependency checks for large numbers of outputs #3255
Comments
Hi @trwhitcomb - that's great news, well done! Looking forward to the PR... |
This speeds up suite validation significantly for tasks with large numbers of outputs. The list used required an O(N) check for membership which, when combined with being run for each output resulted in O(N**2) complexity. Using the builtin set should bypass any deprecated libraries in Python 2. Closes cylc#3255
A few notes:
|
This speeds up suite validation significantly for tasks with large numbers of outputs. The list used required an O(N) check for membership which, when combined with being run for each output resulted in O(N**2) complexity. Using the builtin set should bypass any deprecated libraries in Python 2. Closes cylc#3255
This speeds up suite validation significantly for tasks with large numbers of outputs. The list used required an O(N) check for membership which, when combined with being run for each output resulted in O(N**2) complexity. Using the builtin set should bypass any deprecated libraries in Python 2. Closes cylc#3255
This speeds up suite validation significantly for tasks with large numbers of outputs. The list used required an O(N) check for membership which, when combined with being run for each output resulted in O(N**2) complexity. Using the builtin set should bypass any deprecated libraries in Python 2. Closes cylc#3255
This speeds up suite validation significantly for tasks with large numbers of outputs. The list used required an O(N) check for membership which, when combined with being run for each output resulted in O(N**2) complexity. Using the builtin set should bypass any deprecated libraries in Python 2. Closes cylc#3255
We ran into a case where suites were taking a very long time to validate. This was covered in #1776 and follow on tickets, but didn't quite solve the problem. We tracked the behavior down to an O(N**2) operation in the number of task outputs.
Steps to reproduce: Have a very large number of task outputs (~1000)? in the graph that will be loaded.
Our solution was to replace a list with a set in the taskdef initialization that allowed checking for membership to be done in O(1) time instead of O(N) time (PR to follow)
The text was updated successfully, but these errors were encountered: