rp_speed_test

Code to get the calculation speed for recurrence plots/ recurrence quantification analysis using MATLAB, R, Python, and Julia code.

https://github.com/pucicu/rp_speed_test

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary

Keywords

nonlinear-dynamics performance-testing recurrence-plot recurrence-quantification-analysis time-series-analysis
Last synced: 6 months ago · JSON representation ·

Repository

Code to get the calculation speed for recurrence plots/ recurrence quantification analysis using MATLAB, R, Python, and Julia code.

Basic Info
  • Host: GitHub
  • Owner: pucicu
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage: http://recurrence-plot.tk/
  • Size: 156 KB
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
nonlinear-dynamics performance-testing recurrence-plot recurrence-quantification-analysis time-series-analysis
Created about 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Comparison of calculation speed for recurrence plots/ recurrence quantification analysis for MATLAB, R, Python, and Julia

SWH file size

General

Measuring the calculation time for creating a recurrence plot (RP) and calculation of the standard recurrence quantification measures for the Rössler system with the standard parameters (a = 0.25, b = 0.25, and c = 4) and a sampling time of Δt = 0.05. The RPs were calculated using Euclidean norm and a threshold of ε = 1.2.

Only the x-component of the Rössler system is used, after removing the first 1,000 points as transients. A simple time delay embedding with m = 3 and τ = 6 is applied. The RP and RQA calculations are implemented for MATLAB, R, Julia, and Python using the following packages/ tools

Software | Package/ URL ---------|------------- MATLAB | simple rp.m v1.2 code https://github.com/pucicu/rp R | crqa v2.0.2 https://github.com/morenococo/crqa Julia | DynamicalSystems.jl v1.4.0 https://juliadynamics.github.io/DynamicalSystems.jl/dev/ Python | simple RP and RQA implementation (included) Python | pyunicorn v0.6.1 https://pypi.org/project/pyunicorn/ Python | PyRQA v8.0.0 https://pypi.org/project/PyRQA/

The CRP Toolbox for MATLAB is not used, because the implementation is interwoven with a graphical user interface and, thus, the new rendering engine of MATLAB is strongly interfering and slowering the calculations since its introduction in 2014 (see https://tocsy.pik-potsdam.de/CRPtoolbox/).

Requirements

Software | Requirements ---------|-------------- MATLAB | install the code from https://github.com/pucicu/rp as a subfolder rp R | packages nonlinearTseries, crqa, abind, tictoc Julia | packages OrdinaryDiffEq, DelayEmbeddings, DynamicalSystems, DelimitedFiles Python | packages PyRQA, pyunicorn, numpy, scipy

Procedure

The recurrence analysis is performed on the time series obtained from the Rössler system with growing length, starting with N = 200, increasing in steps to provide equidistant points along the x-axis in a log-log plot. The increase of length will be stopped when the calculation time exceeds 30 sec. For each selected length, the calculation time is measured 10 times and then averaged.

Not for all implementations all RQA measures are available (e.g., for simple Python code). The calculation of network measures were disabled in all code.

Results

The results presented here are from calculations performed on a 2.3 GHz Quad-Core Intel Core i7 with 16GB RAM, except the calculations using the PyRQA package, which were performed on a Nvidia GPU Tesla V100 with OpenCL 1.2. For crqa (R) and PyRQA the calculation cannot be separated into RP and RQA calculations, therefore, both appear only in the figure on the total computation time.

Computation speed for recurrence plots and recurrence quantification measures for the Rössler system.

Owner

  • Name: Norbert Marwan
  • Login: pucicu
  • Kind: user
  • Location: Potsdam, Germany
  • Company: Potsdam Institute for Climate Impact Research

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  Comparison of calculation speed for recurrence plots/
  recurrence quantification analysis for MATLAB, R, Python,
  and Julia
message: 'If you use this software, please cite it as below.'
type: software
authors:
  - given-names: Norbert
    family-names: Marwan
    email: marwan@pik-potsdam.de
    affiliation: Potsdam Institute for Climate Impact Research (PIK)
    orcid: 'https://orcid.org/0000-0003-1437-7039'
identifiers:
  - type: url
    value: 'https://github.com/pucicu/RP_Speed_Test'
    description: Github-Page
repository-code: 'https://github.com/pucicu/RP_Speed_Test'
abstract: >-
  Scripts designed to compare the performance of Julia,
  Python, R, and MATLAB in computing recurrence plots and
  conducting recurrence quantification analysis.
keywords:
  - software
  - performance testing
  - recurrence plot
  - recurrence quantification analysis
  - Julia
  - MATLAB
  - Python
  - R
  - time series analysis
  - nonlinear dynamics
license: GPL-3.0
date-released: 2022-04-08

GitHub Events

Total
  • Watch event: 2
  • Push event: 3
Last Year
  • Watch event: 2
  • Push event: 3