2017-02-21 5 views
0

나는 내 컴퓨터에서 자주 실행되는 mcc를 사용하여 컴파일 된 Matlab 프로그램을 parfor 실행합니다. 각 프로그램은 느린 시작 시간을 가지고 있다고 생각합니다. 병렬 작업자 풀이 생성 되었기 때문에 (병렬 풀을 시작하는 데 약 20 초 정도 걸립니다) 생각합니다. 풀이 백그라운드에서 항상 열려있을 수 있다면 나에게 더 효율적일 것입니다. 예를 들어, matlab 인터페이스에서 parpool을 열 때 parpool은 30 분 동안 열려 있기 때문에 각 MATLAB 스크립트에 대해 parpool을 열 필요가 없다고합니다. 코드가 컴파일되거나 다른 솔루션이있을 때도 가능합니까?parfor 수 matlab 컴파일 된 코드 액세스 로컬 작업자 풀

+0

나는 컴파일 된 코드가 나쁜 아이디어를 멈춘 후에 풀을 열어 두는 것이 좋다고 생각합니다! –

답변

0

풀을 여는 시간을 늘릴 수 있습니다. 테스트 중에

>> preferences 

을 입력하고 왼쪽 메뉴에서 Parallel Computing Toolbox 설정을 선택할 수 있습니다. Preferences Menu

당신은 당신이있는 경우

p = parpool 
p.IdleTimeout = 120 %minutes 

풀 당신은 개방하지 않고도 여러 스크립트를 실행할 수 있습니다 긴 시간 동안 열린 코드에 추가하고 여러 닫을 같은 결과를 얻을 수 있습니다 타임스.

영구적으로 열어 두는 것이 좋습니다.

+0

그렇습니다. 이것은 Matlab에서 작업 할 때 작동합니다. 문제는 코드를 컴파일 한 후에 발생합니다. 코드를 컴파일하고 터미널에서 실행하면 코드를 실행할 때마다 코드 실행 후 보류 상태가 아니며 풀을 여는 데 적어도 20 초마다 걸리기 때문에 새 parpool을 열어야합니다 . 이 문제를 해결할 수 있습니까? 필자가 필요로하는 것은 mcc를 사용하여 코드를 컴파일 할 때도 열어 둔 상태의 parpool이다. – David

+0

프로그램의 구조는 무엇입니까? 여러 스크립트를 언급하고, 별도의 스크립트로 더 오래 지속되는 parpool을 열어보고 parpool이 아직 열려있는 동안 다른 모든 스크립트를 호출하십시오. – roadRunner

+0

각 스크립트를 별도로 실행했기 때문에 나에게 가능하지 않습니다. 스크립트가 완료 되더라도 풀은 열어 두어야합니다. 이것은 Matlab 인터페이스에서 작동하지만 코드가 컴파일 될 때는 작동하지 않습니다. – David