A fast GPU implementation of STL decomposition with missing values
Project description
HaSTL [ˈheɪstiɛl]: A fast GPU implementation of batched Seasonal and Trend decomposition using Loess (STL) [1] with missing values and support for both CUDA and OpenCL (C and multicore backends are also available). Loosely based on stlplus, a popular library for the R programming language. The GPU code is written in Futhark, a functional language that compiles to efficient parallel code.
Requirements
You would need a working OpenCL or CUDA installation/header files, C compiler and these Python packages:
futhark-ffi==0.14.2
wheel
Installation
You may want to run the program in a Python virtual environment. Create it via:
python -m venv env
Then, activate the virtual environment via:
. env/bin/activate
Upgrade pip via:
pip install --upgrade pip
Then select the backends (choose from opencl, cuda, c and multicore) that you wish to build by setting the environment variable:
export HASTL_BACKENDS="opencl multicore c"
If no environmental variable is set, only the sequential c backend would be compiled.
The package can then be easily installed using pip. This will take a while, since we need to compile the shared libraries for your particular system, Python implementation and all selected backends:
pip install hastl
To install the package from the sources, first get the current stable release via:
git clone https://github.com/mortvest/hastl
Install the dependencies via:
pip install -r requirements.txt
Afterwards, you can install the package. This can also take a while:
python setup.py sdist bdist_wheel pip install .
Usage
Examples of HaSTL usage can be found in the examples/ direcotry. The simplest snippet should contain:
from hastl import STL stl = STL(backend=..) seasonal, trend, remainder = stl.fit(data, n_p=.., q_s=..)
References
[1] Cleveland, Robert B., et al. “STL: A seasonal-trend decomposition.” J. Off. Stat 6.1 (1990): 3-73.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file hastl-0.1.8.tar.gz
.
File metadata
- Download URL: hastl-0.1.8.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f71b427f03ecd071a7a5eae8dfb7d39443f9e3422b9c2816955e424ecc7b4566 |
|
MD5 | e6794689d68dcc64bc343fdefc8c68d0 |
|
BLAKE2b-256 | ade3ee58c371626e73ad983865a2985e92e473d6fd49b213b50865d96698efeb |