How can I run a function in parallel and return the compiled output of the function?
이전 댓글 표시
I have a long cell array (thousands) of full file paths, and a function that has been written to pull data from each file path. Normally, I would just send the cell array of file paths to this function, and it would return the data. Because the size of my cell array is so large, this can take a long time, sometimes a couple hours or more. I was wondering if there is any way to have MATLAB call this function in parallel with the file paths sent in groups, and return the results in the same way as without the parallel function processing?
I'll try to give an example to better explain what I want to do.
Current method:
filepaths = {'filepath1','filepath2','filepath3',.....}
results = datapullfunction(filepaths)
Desired method:
filepaths = {'filepath1','filepath2','filepath3',.....}
--send 1/12th of filepaths to datapullfunction 12 times in parallel (I have a 12 core processor) and have it return the same results as the current method--
_____________
Currently I'm trying to use batch:
c = parcluster();
j = batch(c,'datapullfunction',1,filepaths);
results = fetchOutputs(j)
but results returns an error saying my input to datapullfunction "is not a recognized option." I know that it is a recognized option because if I send datapullfunction(filepaths) it works just fine.
Thanks!
채택된 답변
추가 답변 (1개)
Walter Roberson
2016년 6월 24일
1 개 추천
카테고리
도움말 센터 및 File Exchange에서 Time Series Objects에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!