Skip to content

silkskier/glspeaks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

glspeaks

Repository under construction.

1.0 release planned for late 2023.

A simple GLS periodogram for detection of periodic variable stats candidates. Possibly useful for other periodic brightness change detections (like search for rotation period in asteroids), however not tested for these purposes.

Application based on fnpeaks, with the goal of increasing performance, user-friendliness, and accuracy over its predecessor.

/include subdirectory does contain copy of niXman/yas serializer, fastfloat/fast_float float parser, (orlp/pdqsort)[https://github.com/orlp/pdqsort] sorting library, (jarro2783/cxxopts)[https://github.com/jarro2783/cxxopts] CLI arguments parser and a header-only variant of DarkoVeberic/LambertW.

Recommended update/installation command for version beta 1.0.3:

No releases are currently available. Compilation from the source is recommended.
git clone --depth=1 https://github.com/silkskier/glspeaks
cd glspeaks
cmake .
make
sudo make install
cd plots
make
sudo make install
rm -r ~/glspeaks
For version 1.0.0 and later PPA for x86-64 Debian-based systems will be available.

ICPX (Intel oneAPI C++ Compiler) is a recommended compiler choice due to measured significant performance advantage over alternatives, however, g++ with O3 optimization level can be used to reduce output binary size from ~ 500 kB to less than 200 kB at a cost of ~5% increase of execution time.

The program is designed to work with data stored on flash memory - on HDDs accessing data 'all over the place' due to the usage of OpenMP to parse the input may cause significant overhead.

As for now, the application is almost fully functional. Planned improvements include NFFT3 and conditional entropy-based algorithms available as an alternative for current batch mode and SyCL GPGPU implementation for 1.3 update (planned to be fully bottlenecked by CPU during data parsing, needs to solve the issue of limited static GPU memory, to be implemented efficiently). The stock FastChi algorithm implementation is not planned due to its underwhelming performance (~3 stars/second * core on Ryzen 5 4600H) with precision inferior to CE. Modified implementation is possible at future release. The current performance of recursive GLS is close to ~75 stars/second*core on the same hardware at the resolution set to 13 (which results in accuracy close to limitations of the algorithm).

Potential alternatives to this application;

  1. AstroPy - Python Library containing alternative implementations of all periodograms used in this application as well, as many other tools.
  2. VStar - Alternative GUI OpenSource application allowing for batch searches.
  3. UPSILoN - Automatic variable stars classifier based on the Random Forest model.
  4. Peransi - Proprietary GUI application allowing for analysis of variable stars' periodicity with many different periodograms included.
  5. FastChi$^{2}$ - Reasonably performant periodogram for batch searches (CLI only).
  6. PDM2 - Accurate low-performance periodogram.
  7. Plotypus - Not maintained Python library useful for finding periods as well as lightcurve generation.

Inspired by (list does not include software and/or articles mentioned previously in alternatives);

  1. fnpeaks - a simple recursive Lomb-Scargle periodogram (CLI only)
  2. AstroPy's periodograms' implementations
  3. nfft.nfft_adjoint function from nfft Python package
  4. adjoint CUNFFT from CUNFFT library
  5. NFFT3.jl package
  6. B. Leroy - Fast calculation of the Lomb-Scargle periodogram using NFFTs
  7. jakevdp/nfftls Python package
  8. pynfftls Python package
  9. Matthew J. Graham at all - A comparison of period finding algorithms
  10. Deep Forward Thinking Random Forest ensemble learning method
  11. randomForest Go machine learning library
  12. GoLearn machine learning library
  13. Friedman, J. H. (1984) A variable span scatterplot smoother
  14. supersmoother Python package
  15. pdqsort library
  16. VkFFT library
  17. Kaixi Hou at all - bb_segsort algoruthm
  18. FINUFFT
  19. Sheng Shi, Runkai Yang and Haihang You - NFFT.jl
  20. Haitham Hassanieh, Piotr Indyk, Dina Katabi, Eric Price - Nearly Optimal Sparse Fourier Transform
  21. sFFT-4.0
  22. Sheng Shi, Runkai Yang, Haihang You - ATSFFT
  23. GPU-accelerated supersmoother
  24. KuiperVnStatistic
  25. GPU accelerated Conditional Entropy periodogram, Github repo

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages