diku-dk / bfast

GPU Implementation for BFAST
GNU General Public License v3.0
37 stars 17 forks source link

bfast() integration #12

Open fdetsch opened 3 years ago

fdetsch commented 3 years ago

Thanks for your work. Are there plans to integrate the "traditional" bfast() function as well?

mortvest commented 3 years ago

You're welcome! Yes, we are currently working on the integration of the BFAST algorithm (bfast() R function). We have an early prototype of the Python backend, and it would be integrated to the bfast-experimental branch in the near future. Regarding the OpenCL backend, it is a huge amount of work that hopefully would be somewhat ready around summer.

fdetsch commented 3 years ago

Awesome! Ultimately, a Python version of R bfast() enhanced with OpenCL would be a massive benefit as regards performance. Do you expect the native Python version (ie. without OpenCL) to be already superior to R bfast() from a performance point of view?

mortvest commented 3 years ago

Sadly, I expect the native Python version to be a bit slower, since the most computationally intensive operations in the R version are written in C++. Multiprocessing can be utilized to get some speedup though

fdetsch commented 3 years ago

Argh, alright.. in any event, I am eager to see both the native and OpenCL based approach being implemented (:

mirt001 commented 3 years ago

@fdetsch while @mortvest is right that the most intensive parts of the R version are written in C++, this is only true for the latest version of strucchange and bfast found at https://github.com/bfast2 . The default CRAN version is slower.

Even so, I would expect the Python version to be less memory intensive because R strictly uses 4 bytes numbers.

mortvest commented 3 years ago

Hmm, interesting. Thank you for your input @mirt001