A Multithreaded Algorithm for the Computation of Sample Entropy

Many popular entropy definitions for signals, including approximate and sample entropy, are based on the idea of embedding the time series into an <i>m</i>-dimensional space, aiming to detect complex, deeper and more informative relationships among samples. However, for both approximate...

Full description

Bibliographic Details
Main Authors: George Manis, Dimitrios Bakalis, Roberto Sassi
Format: Article
Language:English
Published: MDPI AG 2023-06-01
Series:Algorithms
Subjects:
Online Access:https://www.mdpi.com/1999-4893/16/6/299
_version_ 1797596467525844992
author George Manis
Dimitrios Bakalis
Roberto Sassi
author_facet George Manis
Dimitrios Bakalis
Roberto Sassi
author_sort George Manis
collection DOAJ
description Many popular entropy definitions for signals, including approximate and sample entropy, are based on the idea of embedding the time series into an <i>m</i>-dimensional space, aiming to detect complex, deeper and more informative relationships among samples. However, for both approximate and sample entropy, the high computational cost is a severe limitation. Especially when large amounts of data are processed, or when parameter tuning is employed premising a large number of executions, the necessity of fast computation algorithms becomes urgent. In the past, our research team proposed fast algorithms for sample, approximate and bubble entropy. In the general case, the bucket-assisted algorithm was the one presenting the lowest execution times. In this paper, we exploit the opportunities given by the multithreading technology to further reduce the computation time. Without special requirements in hardware, since today even our cost-effective home computers support multithreading, the computation of entropy definitions can be significantly accelerated. The aim of this paper is threefold: (a) to extend the bucket-assisted algorithm for multithreaded processors, (b) to present updated execution times for the bucket-assisted algorithm since the achievements in hardware and compiler technology affect both execution times and gain, and (c) to provide a Python library which wraps fast C implementations capable of running in parallel on multithreaded processors.
first_indexed 2024-03-11T02:51:47Z
format Article
id doaj.art-73bff08e00874d748fb2df0562e94e35
institution Directory Open Access Journal
issn 1999-4893
language English
last_indexed 2024-03-11T02:51:47Z
publishDate 2023-06-01
publisher MDPI AG
record_format Article
series Algorithms
spelling doaj.art-73bff08e00874d748fb2df0562e94e352023-11-18T08:56:58ZengMDPI AGAlgorithms1999-48932023-06-0116629910.3390/a16060299A Multithreaded Algorithm for the Computation of Sample EntropyGeorge Manis0Dimitrios Bakalis1Roberto Sassi2School of Engineering, Department of Electrical and Computer Engineering, University of Ioannina, 45110 Ioannina, GreeceSchool of Engineering, Department of Electrical and Computer Engineering, University of Ioannina, 45110 Ioannina, GreeceDipartimento di Informatica, Università degli Studi di Milano, 20133 Milano, ItalyMany popular entropy definitions for signals, including approximate and sample entropy, are based on the idea of embedding the time series into an <i>m</i>-dimensional space, aiming to detect complex, deeper and more informative relationships among samples. However, for both approximate and sample entropy, the high computational cost is a severe limitation. Especially when large amounts of data are processed, or when parameter tuning is employed premising a large number of executions, the necessity of fast computation algorithms becomes urgent. In the past, our research team proposed fast algorithms for sample, approximate and bubble entropy. In the general case, the bucket-assisted algorithm was the one presenting the lowest execution times. In this paper, we exploit the opportunities given by the multithreading technology to further reduce the computation time. Without special requirements in hardware, since today even our cost-effective home computers support multithreading, the computation of entropy definitions can be significantly accelerated. The aim of this paper is threefold: (a) to extend the bucket-assisted algorithm for multithreaded processors, (b) to present updated execution times for the bucket-assisted algorithm since the achievements in hardware and compiler technology affect both execution times and gain, and (c) to provide a Python library which wraps fast C implementations capable of running in parallel on multithreaded processors.https://www.mdpi.com/1999-4893/16/6/299entropysample entropyfast algorithmparallel algorithmbucket-assisted algorithm
spellingShingle George Manis
Dimitrios Bakalis
Roberto Sassi
A Multithreaded Algorithm for the Computation of Sample Entropy
Algorithms
entropy
sample entropy
fast algorithm
parallel algorithm
bucket-assisted algorithm
title A Multithreaded Algorithm for the Computation of Sample Entropy
title_full A Multithreaded Algorithm for the Computation of Sample Entropy
title_fullStr A Multithreaded Algorithm for the Computation of Sample Entropy
title_full_unstemmed A Multithreaded Algorithm for the Computation of Sample Entropy
title_short A Multithreaded Algorithm for the Computation of Sample Entropy
title_sort multithreaded algorithm for the computation of sample entropy
topic entropy
sample entropy
fast algorithm
parallel algorithm
bucket-assisted algorithm
url https://www.mdpi.com/1999-4893/16/6/299
work_keys_str_mv AT georgemanis amultithreadedalgorithmforthecomputationofsampleentropy
AT dimitriosbakalis amultithreadedalgorithmforthecomputationofsampleentropy
AT robertosassi amultithreadedalgorithmforthecomputationofsampleentropy
AT georgemanis multithreadedalgorithmforthecomputationofsampleentropy
AT dimitriosbakalis multithreadedalgorithmforthecomputationofsampleentropy
AT robertosassi multithreadedalgorithmforthecomputationofsampleentropy