Skip to content

Fcma parallelize cv - #176

Merged
mihaic merged 5 commits into
brainiak:masterfrom
yidawang:fcma_parallelize_cv
Feb 7, 2017
Merged

mihaic merged 5 commits into
brainiak:masterfrom
yidawang:fcma_parallelize_cv

Conversation

@yidawang

@yidawang yidawang commented Feb 3, 2017

Copy link
Copy Markdown
Member

Use pathos.multiprocessing to parallelize the cross-validation step of correlation-based voxel selection when sklearn.svm.SVC with precomputed kernel is used as the classifier.

Thanks in advance for reviewing!

from . import fcma_extension
from . import cython_blas as blas
import logging
import pathos.multiprocessing

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that you do not use other features of Pathos, could you please use the standalone Multiprocess package?
https://pypi.python.org/pypi/multiprocess
We are trying to remove the dependency on Pathos (see issue #149).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to @mjanderson09 , the standalone multiprocessing can only serialize methods at the root level, and the Pathos version is more flexible so that we can define a lambda function and use it in the map method.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiprocess can serialize lambdas, as shown in the last example in its README:
https://github.com/uqfoundation/multiprocess#examples

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I didn't make myself clear. It is not just about lambda functions. A lambda function without involving any other user-defined methods should probably be fine, but in my case, I have _cross_validation_for_one_voxel used in my lambda function. If I want to use the standalone multiprocessing, I will have to put _cross_validation_for_one_voxel outside the class and define it at the root level.

@mihaic
mihaic merged commit eb02db4 into brainiak:master Feb 7, 2017
@yidawang
yidawang deleted the fcma_parallelize_cv branch February 7, 2017 05:14
danielsuo pushed a commit that referenced this pull request Nov 16, 2017
danielsuo pushed a commit that referenced this pull request Nov 16, 2017
* remove node.js webui

* temp commit

* flesh out web ui

* add documentation

* add ray timeline

* Small changes to documentation and formatting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants