Skip to content

parallelize the global continuation calculation #140

@Datseris

Description

@Datseris

Okay I just realized we can parallelize global_continuation for the AttractorSeedContinueMatch mapper. I am writing it here to not forget it.

We can't truly parallelize because we need to seed attractors from previous step. However, this is the only step of the process that can't done in parallel but only sequentially.

So my idea is: first go through the continuation sequentially and map seeds from previous attractors to attractors. Only the seeds. Not the randomly sampled initial conditions in state space.

Then, go through the parameter curve a second time, but now in parallel, via deepcopying the mapper as many times as threads. In each thread we process one parameter, and run basins fractions with the pre-found attractors. So this way we populate the the basins fractions and/or find new attractors, in parallel.

Finally we do the matching step which needs to be done in sequence.

The question is: will this actually be faster? It is not clear; because we need to create as many mappers as parameter values, because we need to store all mappers, as each mapper has its own finite state machine status after finding attractors and it is not possible to just recreate this on the fly. So it will for sure require much more memory allocaiton, but maybe this will be in the end insignificant compared to the performance boost of multithreading the majority of the computations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    continuationRelated with continuation functionalityperformancenumeric performance and optimizing it

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions