2013-08-01 1 views
1

Windows 7에서 MATLAB 2012a를 사용하고 있었는데 강렬한 코드를 실행하고 있었지만 메모리 사용량과 처리 시간이 엄청 났음에도 불구하고 Windows에서 코드가 잘 작동하고있었습니다. . 이제 OS를 우분투 12.04로 변경하고 Matlab 2013a를 설치했습니다. 사용되는 메모리의 양은 Windows의 경우보다 훨씬 적지 만 matlab이 동일한 코드를 실행하는 데 걸리는 시간은 매우 높습니다.우분투에서 Matlab 코드를 실행하는 속도가 매우 느림

내가 내 코드

K=zeros(Np,Np); 

for i=1:ord 
K=K+sparse(t(1:ord,:),repmat(t(i,:),ord,1),double(subs(Kv(:,i),Arg(Kv,1,1,6),Arg(Kv,1,2,6))),Np,Np); 
end 

참고를 다음과 같이 인자의 하나로서 심볼 대체와 스파 스의 문을 제외하고 같은 엄청난 시간이 걸릴 수 있습니다 아무것도 포함하지 언급해야합니다 Kv 값은 상징적 인 매트릭스임을를하고 Arg는 OLD와 NEW를 제공하는 함수이며 많은 수의 전역 변수에 의존합니다.

필자는 우분투에 Matlab 코드 실행을 가속화하는 데 도움이 될만한 것을 추가하지 않았다는 느낌이 들었습니다. 아이디어가 있으십니까?

+0

참조 http://superuser.com/questions/154837/how-to-make-the-execution-of-a-matlab-program-faster – user1929959

+0

코드 최적화에 관해서 ... 나는 강조해야합니다. 나는 창문 밑에서했던 것과 똑같이 (적어도) 달릴 필요가있다. 지금 나는 창문 아래서 찍은 시간에 비해 실제 연기로 고통 받고 있습니다. RAM의 20 % 만 사용하고 있으며 스왑은 0 %를 보이고 있습니다 ... 그래서 HD 액세스 시간으로 인한 시간 낭비를 배제 할 수 있습니다. –

+0

나는 또한 ... 말할 필요가있다. 나는 코드의 가벼운 버전을 사용하고있다. 그것은 .. 평소보다 더 빨리 반응해야한다는 것을 의미한다. –

답변

1

나는 Windows에서 비슷한 문제가 있었지만 해결책은 우분투 LTS에서 동일하다고 생각합니다. 따라서 Matlab의 Java Heap Memory를 늘리면 Matlab은 시스템에서 더 많은 메모리를 사용하지만 더 빨라집니다.

이렇게하려면 파일 -> 환경 설정 -> 일반 -> Java 힙 메모리로 이동하여 최대 값을 늘리십시오. 기본값은 128이며 너무 작습니다.

+0

나는 그것을 시도했다 ... 도움이되지 않았다 ... –

+0

내가 생각할 수있는 다른 것은 당신이 말했듯이 병렬 루프'parfor'를 사용하는 것이다. –

+1

나는 코드 내에 문제가 있다고 생각하지 않는다. 코드는 동일한 하드웨어로 윈도우에서 잘 작동했습니다 ... 문제는 OS가 우분투로 변경되었거나 Matlab 2012가 Matlab 2013으로 변경 되었기 때문에 나타났습니다 ... 질문은 제가 누락 된 부분입니까? –

0

힙 메모리 제한으로 문제가 해결되지 않으면 matlab 프로세스를 늘려보십시오.

먼저 시작 MATLAB, 다음 내 경우에는

ps aux|grep MATLAB 

를 수행 결과는 다음과 같습니다 첫 번째 번호 (PID)에서

comtom 9769 28.2 19.8 4360632 761808 tty2 S<l+ 14:00 1:50 /usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/glnxa64/MATLAB -desktop 

봐가. 그런 다음 프로세스 renice 명령과 함께 사용하여 프로세스 우선 순위를 변경하십시오.

renice -3 -p 9769 

그게 전부입니다. GUI는 구식 Xorg 라이브러리에 대해 구축되었으므로 매우 느립니다. 그래서 우선 순위를 변경하면 일부 그놈 효과의 눈물을 볼 수 있습니다,하지만 matlab의 인터페이스가 훨씬 더 잘 작동합니다.

관련 문제