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

Faster cluster matrix creation #920

Merged
merged 15 commits into from
Feb 22, 2024
Merged

Faster cluster matrix creation #920

merged 15 commits into from
Feb 22, 2024

Conversation

shawnlaffan
Copy link
Owner

A set of general optimisations to speed up matrix creation for cluster analyses.

Initially focused on the matrix classes but then extended to the index calculations.

And optimise.

Plus some smaller changes.
Makes a difference for matrices where these are called many times.
And fix an overly zealous change from a recent commit.
We need $value in more than one place.
Avoids a lot of calls when building matrices.
In such cases caching becomes beneficial
as we are often building a matrix and
repeatedly calling subs to get the same answer.
The pairwise abc will make all the other calcs faster.

The dispatcher allows centralisation of all
the logic controlling which inner sub is used,
thus removing a lot of repetition.
This avoids needless calls to calc_abc and
thus less processing when building cluster
matrices.
No need to calculate calc_abc for the phylo
variant.

This has the knock-on effect of needing to handle
arrays and hashes for the element_list[12] args.
The intent is to clean that up as part of issue #919.
@shawnlaffan shawnlaffan changed the title Make cluster matrix creation faster Faster cluster matrix creation Feb 22, 2024
@shawnlaffan shawnlaffan merged commit 865f15d into master Feb 22, 2024
8 checks passed
@shawnlaffan shawnlaffan deleted the matrices_2024 branch February 22, 2024 00:58
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.

1 participant