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

Speed improvements for PE, RPE etc #831

Merged
merged 24 commits into from Oct 24, 2022
Merged

Speed improvements for PE, RPE etc #831

merged 24 commits into from Oct 24, 2022

Conversation

shawnlaffan
Copy link
Owner

Includes a few other minor cleanups.

This saves some repeated calculation of the
same values per processing group.
This should avoid the need to climb up and down the tree
when PD is not needed.
Benchmarking shows it to be faster.
We can grab these once after all the weights
have been calculated.

This means we do not need to run all the hash mergers
and so Data::Recursive and Panda::Lib can be removed
from this file.
It avoids repeated calls to the last-if sub
by running it all in one, and also assigns as it goes.
A micro-optimisation but otherwise it triggers
huge numbers of calls for no real update
when analysing large data sets.
Mainly by avoiding recursion in internal methods.
This avoids recursion in delete_cached_values_below.
Returns an array of node names up to and including to the root.
This saves time in the Phylo calculations as there
is no need to then get the names.

The array args variant does all the work.
This reduces the time for one large tree from ~14 s to ~6.5 s.

Whether it scales linearly remains to be seen.

The commented code in Spatial.pm will be cleaned
up in a later commit.
@shawnlaffan shawnlaffan added this to the Release_4.0 milestone Oct 24, 2022
@shawnlaffan shawnlaffan self-assigned this Oct 24, 2022
@shawnlaffan shawnlaffan merged commit 0247368 into master Oct 24, 2022
@shawnlaffan shawnlaffan deleted the faster_RPE2_maybe branch October 24, 2022 02:24
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

Successfully merging this pull request may close these issues.

None yet

1 participant