-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Julia support for eFEL given the Cpp code core? #180
Comments
Yes, it should be possible to create wrappers for other languages. Here is the python wrapper if you need inspiration: The cfeature.h and efel.h provide the interfaces. Beware of 1 thing though, we're slowly moving towards pure python features (https://github.com/BlueBrain/eFEL/tree/master/efel/pyfeatures). For now these won't be exposed in the C++ interface. |
@wvangeit May I ask why you're moving to pyfeatures? It seems strange to move away from cpp, will this impact perfomance of the library? |
Well, there are several reasons why we'd move to python. Mostly extensibility, maintainability and flexibility. |
On a lark, I started a conversion to pure python at one point, and other than being time-consuming it isn't too bad. On the performance side, judicious use of numpy was giving me the same speeds, iirc (this is 3-4 years ago, so I don't know for sure) My gumption to finish it, at the time, was held up by whether or not to support all
I highly recomned https://asv.readthedocs.io/en/stable/ for tracking that. |
I agree with @mgeplf airspeed velocity could help. Also I have achieved C speed code in python by combining numba with numpy. Its a bit tedious, and I doubt people submitting new features would use numba on the first pass, but if core features used numba jit/vectorize I believe significant performance degradation could be avoided. As to my initial question about Julia, it might actually be faster to write a command line API to EFEL and call that from julia using it built in access to os/shell, instead of using PyCall. The problem is PyCall calls can't always be pre-compiled so PyCall calls might slow down otherwise fast julia code. I was thinking NeuronUnit might be accessible to julia using shell calls too. In a CLI version of EFEL I wonder if voltage and current waveforms would have to be text files, or if they could be encoded as BASH strings? Reading and writing files to disk could cause slow downs also. |
I have noticed that eFEL is super fast compared to pure python feature extraction libraries.
Do you think it would be possible for a hacker to add in Julia support with a C++ wraper?
Is this the file that one would need to wrap?
The text was updated successfully, but these errors were encountered: