kEDM (Kokkos-EDM) is a high-performance implementation of the Empirical Dynamical Modeling (EDM) framework. The goal of kEDM is to provide an optimized and parallelized implementation of EDM algorithms for high-end CPUs and GPUs, while ensuring compatibility with the original reference implementation (cppEDM).
Following EDM algorithms are currently implemented in kEDM:
- Simplex projection [1]
- Sequential Locally Weighted Global Linear Maps (S-Map) [2]
- Convergent Cross Mapping (CCM) [3]
CPU (Linux and macOS)
pip3 install kedm
NVIDIA GPU (CUDA 11.2 or later)
pip3 install kedm-11x
NVIDIA GPU (CUDA 12.0 or later)
pip3 install kedm-12x
Please cite the following papers if you find kEDM useful:
- Keichi Takahashi, Kohei Ichikawa, Joseph Park, Gerald M. Pao, “Scalable Empirical Dynamic Modeling with Parallel Computing and Approximate k-NN Search,” IEEE Access, vol. 11, pp. 68171–68183, Jun. 2023. 10.1109/ACCESS.2023.3289836
- Keichi Takahashi, Wassapon Watanakeesuntorn, Kohei Ichikawa, Joseph Park, Ryousei Takano, Jason Haga, George Sugihara, Gerald M. Pao, "kEDM: A Performance-portable Implementation of Empirical Dynamical Modeling," Practice & Experience in Advanced Research Computing (PEARC 2021), Jul. 2021. 10.1145/3437359.3465571
- George Sugihara, Robert May, "Nonlinear forecasting as a way of distinguishing chaos from measurement error in time series," Nature, vol. 344, pp. 734–741, 1990. 10.1038/344734a0
- George Sugihara, "Nonlinear forecasting for the classification of natural time series. Philosophical Transactions," Physical Sciences and Engineering, vol. 348, no. 1688, pp. 477–495, 1994. 10.1098/rsta.1994.0106
- George Sugihara, Robert May, Hao Ye, Chih-hao Hsieh, Ethan Deyle, Michael Fogarty, Stephan Munch, "Detecting Causality in Complex Ecosystems," Science, vol. 338, pp. 496–500, 2012. 10.1126/science.1227079