parallelize the global continuation calculation #140
Labels
continuation
Related with continuation functionality
performance
numeric performance and optimizing it
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.
The text was updated successfully, but these errors were encountered: