Optimization of Computation Times and Memory Management
With this release various functionalities in the trend_extrapolation package are optimized regarding computation times and memory management:
- The
numpy.rollfunction is replaced by fancy indexing during accessing the change point configurations in the batched change point analysis. This notably reduces the computation time. - The
numpy.rollfunction is avoided during the marginalization of the probability density functions of the change point positions. - The parallel workflow during the marginalization of the probability density functions of the change point positions is optimized. The number of jobs per parallel worker is optimally distributed before starting the parallel processing pool. Each worker gets the same number of jobs if possible. If this is not possible, one worker additionally processes the remainder.
- For marginalizing the joint probability density function of the change point configurations, a
queue_managementis implemented that restarts the pool by a definable number of times with a subset of jobs to avoid memory errors.
This release acts as a preparation for the final PhD release that is planned to represent the documented version in the corresponding PhD thesis.