2011-03-03 4 views
1

Matlab의 Parallel Toolbox를 사용하는 데 문제가 있습니다. 사실, parfor 루프에서 일련의 아카이브를 압축 해제하고 싶습니다. untarsystem도 작동하지 않는 것으로 보입니다. 그들은 오류를 일으키지 않으며 단순히 결과를 산출하지 않습니다.parfor에서 사용할 수없는 함수 목록

매우 평범한 코드는 병렬 처리를 비활성화하자마자 아무런 문제없이 작동합니다.

parfor 루프에서 사용할 수없는 기능을 나열하는 참조가 있습니까? 병렬 도구 설명서에서 쉽게 찾을 수 없었습니다.

답변

1

system은 PARFOR 루프에서 올바르게 작동해야합니다. 호출하는 실행 파일에 사용자 입력이 필요하지 않은 경우입니다. 같은 assignin, load, clearthis page를 참조하면 작업 공간을 수정하는 기능을 사용할 수 없습니다 -

>> matlabpool('size') 
ans = 
    3 
>> parfor ii=1:2, system('pwd'), end 
/tmp 
ans = 
    0 
/tmp 
ans = 
    0 

PARFOR 루프 본체 내부에 직접을 사용할 수없는 기능에 대한 주요 제약은 "작업 공간 투명성"과 관련이 그것에 대해 더 알고 싶습니다. (물론 load 등을 호출하는 PARFOR 루프의 몸체에서 함수를 호출 할 수 있습니다.)

+0

글쎄, 난 untar는 그 경우에는 작동하지 않습니다 놀랍군요. – Greg

0

다음과 같이 시도해 볼 수 있습니다. I parfor

함수 parallel_stuff

= 1시 10분

B = my_untar (a)

단부

단부

함수 B = my_untar (a)

b = untar (a)

+0

시도해 보셨습니까? 왜 더 효과가 있을까요? – Greg

+0

나는이 구체적인 예를 시도하지 않았다. 병렬로 실행할 수없는 여러 함수의 경우 실제로 병렬로 호출되는 비 병렬 함수에서 호출 할 수 있습니다. 나는 untar 명령에 익숙하지 않지만이 방법으로 작동하지 않는 이유를 알지 못합니다 (아마도 다른 속임수가 필요할 것입니다). 필자는 함수를 호출하기 전에 함수를 래핑하는 방법이 때때로 parfor 루프의 한계를 해결한다고 지적했다. – Miebster

관련 문제