parallelDist

Parallel Distance Matrix Computation using Multiple Threads

A fast parallelized alternative to R's native 'dist' function to calculate distance matrices for continuous, binary, and multi-dimensional input matrices, which supports a broad variety of 41 predefined distance functions from the 'stats', 'proxy' and 'dtw' R packages, as well as user- defined functions written in C++. For ease of use, the 'parDist' function extends the signature of the 'dist' function and uses the same parameter naming conventions as distance methods of existing R packages. The package is mainly implemented in C++ and leverages the 'RcppParallel' package to parallelize the distance computations with the help of the 'TinyThread' library. Furthermore, the 'Armadillo' linear algebra library is used for optimized matrix operations during distance calculations. The curiously recurring template pattern (CRTP) technique is applied to avoid virtual functions, which improves the Dynamic Time Warping calculations while the implementation stays flexible enough to support different DTW step patterns and normalization methods.

Total

10,209

Last month

1,217

Last week

407

Average per day

41

Daily downloads

Total downloads

Description file content

Package
parallelDist
Type
Package
Title
Parallel Distance Matrix Computation using Multiple Threads
Version
0.2.4
Author
Alexander Eckert [aut, cre], Lucas Godoy [ctb], Srikanth KS [ctb]
Maintainer
Alexander Eckert
Description
A fast parallelized alternative to R's native 'dist' function to calculate distance matrices for continuous, binary, and multi-dimensional input matrices, which supports a broad variety of 41 predefined distance functions from the 'stats', 'proxy' and 'dtw' R packages, as well as user- defined functions written in C++. For ease of use, the 'parDist' function extends the signature of the 'dist' function and uses the same parameter naming conventions as distance methods of existing R packages. The package is mainly implemented in C++ and leverages the 'RcppParallel' package to parallelize the distance computations with the help of the 'TinyThread' library. Furthermore, the 'Armadillo' linear algebra library is used for optimized matrix operations during distance calculations. The curiously recurring template pattern (CRTP) technique is applied to avoid virtual functions, which improves the Dynamic Time Warping calculations while the implementation stays flexible enough to support different DTW step patterns and normalization methods.
License
GPL (>= 2)
LazyData
TRUE
URL
BugReports
https://github.com/alexeckert/parallelDist/issues
NeedsCompilation
yes
Depends
R (>= 3.0.2)
Imports
Rcpp (>= 0.12.6), RcppParallel (>= 4.3.20)
LinkingTo
Rcpp, RcppParallel, RcppArmadillo
SystemRequirements
C++11
Suggests
dtw, ggplot2, proxy, testthat, RcppArmadillo, RcppXPtrUtils
Packaged
2018-12-12 21:13:09 UTC; alex
Repository
CRAN
Date/Publication
2018-12-12 22:50:02 UTC

install.packages('parallelDist')

0.2.4

22 hours ago

https://github.com/alexeckert/parallelDist

Alexander Eckert

GPL (>= 2)

Depends on

R (>= 3.0.2)

Imports

Rcpp (>= 0.12.6), RcppParallel (>= 4.3.20)

Suggests

dtw, ggplot2, proxy, testthat, RcppArmadillo, RcppXPtrUtils

Discussions