{"id":25979159,"url":"https://github.com/mortvest/hastl","last_synced_at":"2025-03-05T06:22:32.418Z","repository":{"id":44664181,"uuid":"383483090","full_name":"mortvest/hastl","owner":"mortvest","description":"HaSTL: A fast GPU implementation of STL decomposition with missing values and support for both CUDA and OpenCL","archived":false,"fork":false,"pushed_at":"2023-09-11T19:16:18.000Z","size":42214,"stargazers_count":11,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T17:59:04.989Z","etag":null,"topics":["cuda","forecasting","gpu","opencl","time-series","time-series-analysis"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mortvest.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-07-06T13:43:56.000Z","updated_at":"2024-10-08T16:28:26.000Z","dependencies_parsed_at":"2023-12-21T16:44:52.973Z","dependency_job_id":"f2584832-40fa-4027-9197-d660367839c1","html_url":"https://github.com/mortvest/hastl","commit_stats":{"total_commits":97,"total_committers":1,"mean_commits":97.0,"dds":0.0,"last_synced_commit":"c03441d28574b8efff3a9422361733d5b939fa70"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mortvest%2Fhastl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mortvest%2Fhastl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mortvest%2Fhastl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mortvest%2Fhastl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mortvest","download_url":"https://codeload.github.com/mortvest/hastl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241976156,"owners_count":20051587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuda","forecasting","gpu","opencl","time-series","time-series-analysis"],"created_at":"2025-03-05T06:22:31.780Z","updated_at":"2025-03-05T06:22:32.396Z","avatar_url":"https://github.com/mortvest.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"HaSTL\n=================================================================\n\nHaSTL [ˈheɪstiɛl]: A fast GPU implementation of batched Seasonal and Trend\ndecomposition using Loess (STL) [1] with missing values and support for both\nCUDA and OpenCL (C and multicore backends are also available).\nLoosely based on `stlplus \u003chttps://github.com/hafen/stlplus\u003e`_, a\npopular library for the R programming language. The GPU code is written in\n`Futhark \u003chttps://futhark-lang.org\u003e`_, a functional language that compiles\nto efficient parallel code.\n\n\nRequirements\n------------\n\nYou would need a working OpenCL or CUDA installation/header files, C compiler and these Python packages:\n\n- futhark-ffi==0.14.2\n- wheel\n\n\nInstallation\n------------\n\nYou may want to run the program in a Python virtual environment. Create it via::\n\n  python -m venv env\n\nThen, activate the virtual environment via::\n\n  . env/bin/activate\n\nUpgrade pip via::\n\n  pip install --upgrade pip\n\nThen select the backends (choose from opencl, cuda, c and multicore) that you wish to build by setting the environment variable::\n\n  export HASTL_BACKENDS=\"opencl multicore c\" \n\nIf no environmental variable is set, only the sequential c backend would be compiled.\n\nThe package can then be easily installed using pip. This will take a while, since we need\nto compile the shared libraries for your particular system, Python implementation and all selected backends::\n\n  pip install hastl\n\nTo install the package from the sources, first get the current stable release via::\n\n  git clone https://github.com/mortvest/hastl\n\nInstall the dependencies via::\n\n  pip install -r requirements.txt\n\nAfterwards, you can install the package. This can also take a while::\n\n  python setup.py sdist bdist_wheel\n  pip install .\n\n\nUsage\n-----\nExamples of HaSTL usage can be found in the examples/ direcotry. The simplest snippet should contain::\n\n  from hastl import STL\n  stl = STL(backend=..)\n  seasonal, trend, remainder = stl.fit(data, n_p=.., q_s=..)\n\n\nReferences\n----------\n[1] Cleveland, Robert B., et al. \"STL: A seasonal-trend decomposition.\" J. Off. Stat 6.1 (1990): 3-73.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmortvest%2Fhastl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmortvest%2Fhastl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmortvest%2Fhastl/lists"}