rp_speed_test
Code to get the calculation speed for recurrence plots/ recurrence quantification analysis using MATLAB, R, Python, and Julia code.
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
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
Metadata Files
README.md
Comparison of calculation speed for recurrence plots/ recurrence quantification analysis for MATLAB, R, Python, and Julia
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.
Owner
- Name: Norbert Marwan
- Login: pucicu
- Kind: user
- Location: Potsdam, Germany
- Company: Potsdam Institute for Climate Impact Research
- Repositories: 1
- Profile: https://github.com/pucicu
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