PyRQA -- Conducting Recurrence Quantification Analysis on Very Long Time Series Efficiently
Tobias Rawald, Mike Sips, Norbert Marwan
TL;DR
PyRQA tackles the bottleneck of performing Recurrence Quantification Analysis (RQA) on time series longer than one million points by introducing a parallel OpenCL-based framework. It subdivides the large recurrence matrix into submatrices, processes them on multiple compute devices in parallel, and recombines the results to produce full RQA measures. In synthetic benchmarks, PyRQA reduces runtime from almost eight hours to roughly sixty-nine seconds on a four-GPU system, and demonstrates meaningful, reproducible insights on climatological data. The work provides an open-source, vendor-agnostic solution that broadens the practical applicability of RQA to very large datasets.
Abstract
PyRQA is a software package that efficiently conducts recurrence quantification analysis (RQA) on time series consisting of more than one million data points. RQA is a method from non-linear time series analysis that quantifies the recurrent behaviour of systems. Existing implementations to RQA are not capable of analysing such very long time series at all or require large amounts of time to calculate the quantitative measures. PyRQA overcomes their limitations by conducting the RQA computations in a highly parallel manner. Building on the OpenCL framework, PyRQA leverages the computing capabilities of a variety of parallel hardware architectures, such as GPUs. The underlying computing approach partitions the RQA computations and enables to employ multiple compute devices at the same time. The goal of this publication is to demonstrate the features and the runtime efficiency of PyRQA. For this purpose we employ a real-world example, comparing the dynamics of two climatological time series, and a synthetic example, reducing the runtime regarding the analysis of a series consisting of over one million data points from almost eight hours using state-of-the-art RQA software to roughly 69 seconds using PyRQA.
