Comments (4)
Hey Wael,
You are completely correct (unfortunately).
I added the command line options and included the appropriate headers for OpenMP many years ago in anticipation of a big parallel push. But my initial experiments with speed-ups were terrible. I think it is because I need to restructure how the code collects and merges the "birdies" after running search_fft
. The current method is hugely serial and a major anti-parallel bottleneck. In general, I would think we should be able to get rfifind
to parallelize quite nicely.
Unfortunately I haven't had the time to prioritize this work, though. So if you or a student wanted to tackle it, I think it would make a really nice computational project. A related addition I've been thinking about is adding generalized spectral kurtosis estimates...
Let me know if you have any thoughts as I'd love to move forward on this.
Scott
from presto.
Hi Scott,
Thanks for the response!
I guess it will be great to have rfifind
parallelized. I probably won't have the time for it now, but maybe can find someone to take a look at this. I will let you know.
In the meantime, rfifind
runtime is quite large. I'm running it on an 8bit file, 64us / 0.5 MHz resolution, 30 mins / 1344 channels, with the arguments:
rfifind -time 30.0 -timesig 10.0 -freqsig 4.0 -chanfrac 0.5 -intfrac 0.3
Is there any command line argument I can add that removes some of the processing to make it run faster? I am searching for FRBs, so probably won't need any FFT-based masking.
-- Wael
from presto.
What I usually do in situations like this is only worry about the bad channels and forget about the time-variable stuff. To do that, I would use just a small chunk of the data (maybe 5-10%?) and run rfifind
on it. Then generate an ignorechan list from the rfifind results and pass that to the various prep* commands. If your data is in one long single file, you will have to chop it somehow, but I suspect you can handle that.
The ignorechan stuff is mentioned in the tutorial and also here:
https://github.com/scottransom/presto/blob/master/FAQ.md#what-is-the-difference-between-using--ignorechan-and-explicitly-including-channels-that-you-want-to-zap-in-an-rfifind-mask-using--zapchan-is-one-preferred-over-the-other
from presto.
Just for reference, I should have put a link in for the FAQ entry about the lack of multi-CPU speed-up, in case others come here looking for answers:
https://github.com/scottransom/presto/blob/master/FAQ.md#many-of-these-routines-are-really-slow-and-they-dont-seem-to-get-faster-using-the--ncpus-option--why-is-that
from presto.
Related Issues (20)
- Docker on ARM: build results in "Error: Old-style type declaration REAL*10 not supported at (1)" HOT 4
- docker build fails on arm64 system
- Errors in running "test_presto_python" HOT 15
- Issue with sigproc keyword signed HOT 3
- Issue Installing PRESTO Python Packages in Python3.9 on RHEL 8 HOT 5
- Import Error on single_pulse_search.py HOT 1
- Undefined reference error during installation HOT 15
- accelsearch frequency range HOT 4
- Using prepsubband for only a fraction of a dataset HOT 3
- Build issue with pulsestack.py HOT 2
- Separating `FFTFIT` into a separate Python package? HOT 2
- Automated documentation for `PRESTO`? HOT 2
- Packaging `PRESTO` for multiple OSes? HOT 3
- ld: cannot find -lfftw3f: No such file or directory HOT 2
- undefined symbol: _gfortran_st_close HOT 2
- PFD file format? HOT 4
- Problem installing PRESTO with Apple M2 - Ventura 13.2 HOT 2
- Remove the Pusar Miner in FAQ HOT 5
- a memory issue about test_presto_python HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from presto.