Fastsrm - #421
Conversation
|
Can one of the admins verify this patch? |
1 similar comment
|
Can one of the admins verify this patch? |
|
Jenkins, add to whitelist. |
|
@hugorichard, thank you very much for the PR. Hopefully the SRM authors and contributors will be able to review it soon. @TuKo, @hejiaz, @cameronphchen? |
|
The tests failed because there is the joblib package missing (which I use for multi-processing). |
|
If you are adding it as a dependency of BrainIAK (not just for testing), you must add it to |
|
Thanks ! I corrected this and it still does not run. It seems to be related to MPI although I do not make use of it: |
|
I'm looking into the error. Please ignore it for the moment, since it only affects the Conda build. Note that |
|
Sorry for the last remark. I saw |
|
@qihongl, I hear you are also knowledgeable about SRM. Review maybe? |
|
@hugorichard We were busy with the tutorials (https://brainiak.org/tutorials) release, but @qihongl will review this soon. |
|
@manojneuro Thank you for your answer ! Don't hesitate to contact me if you need more information. |
|
@hugorichard Thank you for your pull request. I'm working on SRM development, so I could try to review this pull request. Do you have any paper/write-up about this method? A paper about it would be really helpful when reviewing this request. Thanks! |
|
I have just uploaded a paper on Arxiv: https://arxiv.org/pdf/1909.12537.pdf |
|
(Although I have pushed some commits it still needs some work before a second pass can be done I'll tell you when I am done) |
|
@hejiaz Now I have pushed a stable and fully tested version. I still need to update the example so that it complies with the new API. I did a bit more than requested so it was a lot of work but now some new features are available:
|
|
Update: I don't get why test don't pass online. On my computer when I run pytest test_fastsrm.py everything works fine and I get no segmentation fault. |
|
@hugorichard, it might be related to running under MPI. Could you please try |
|
You are right It seems related to MPI. |
|
I think I know it is because of joblib. It does not support nested parallelization loops. If I remove the concerned tests then it works. Should I do that ? |
|
If joblib does not support running under MPI (a reference would be helpful), then we should test it separately, indeed. One small issue is making sure the coverage report is correct. I will look into it next week, unless you have experience with Coverage.py. |
|
./pr-checks now works locally. It still does not work online though. |
|
We are seeing problems with the Conda builds in PR #440 as well, so it is not related to the changes. I am investigating. |
|
Ok thanks :)
|
|
@hugorichard The new changes look good. I will accept it after Mihai fixed the Conda build problem. |
|
This last commit just contains an updated example notebook that is consistent with the API (I also included wget as an example requirement to get a nice progress bar when people download the data used for the example but I can remove it if necessary). |
|
@hugorichard, we fixed the build problem. Please update your PR branch from master. |
|
@hejiaz, all tests are passing. |
|
@hugorichard, thank you very much for your contribution! We look forward to continuing the collaboration. |
|
@mihaic You are very welcome. Thanks for your help and thanks to the reviewers ! |
Solves #416 .
This PR introduces FastSRM. On large datasets, it is faster and more memory efficient that the original algorithm with equivalent performance.
The API used is a bit different from the original SRM algorithm for the following reasons: