나는 Win7에서 Matlab2012를 사용하고 있으며 내 알고리즘은 빠르지만(1회 반복에 80초) 많은 메모리를 소비합니다.
지금은 Ubuntu 12.04 LTS에서 Matlab2013을 사용하고 있는데, RAM 사용량은 매우 적지만 Windows보다 시간이 훨씬 더 걸립니다(반복하는데 30분 정도 걸렸고 지금까지 끝나지 않았습니다).
내가 말했듯이 RAM은 8G 중 1G 사용량을 표시하고 스왑은 8G 중 0%를 표시합니다. 기본값을 확인해 보니 60인데 어차피 사용되지 않네요!
무엇이 문제일 수 있으며 어떻게 이전처럼 Matlab 속도를 높일 수 있습니까?
답변1
비슷한 문제가 있었습니다. Matlab R2013a 64비트가 Windows 7보다 Ubuntu 14.04에서 느리게 실행되었습니다. 많은 차이가 있지만 하드웨어 등은 동일합니다. 마침내 답을 찾았습니다.
Windows 7은 Matlab이 실행 중일 때 CPU 주파수를 가능한 가장 높은 임계값으로 조정하지만 Ubuntu에서는 그렇지 않습니다.
가능한 가장 높은 빈도를 사용하도록 Ubuntu를 구성하려면 다음 명령을 사용하여 "indicator-cpufreq" 애플리케이션을 설치하십시오.
sudo apt-get install indicator-cpufreq
그런 다음 다음 명령을 실행합니다.
indicator-cpufreq
메뉴에서 "성능" 옵션을 선택합니다. 주파수를 가능한 가장 높은 진폭으로 변경합니다. Matlab은 이제 Widows 7에서와 동일한 속도로 실행됩니다.
답변2
느린 속도와 낮은 RAM 사용량 사이에는 인과 관계가 있습니다. 정렬 알고리즘의 99%에는 일부 또는 많은 메모리가 필요합니다.
free
명령(및 해당 매뉴얼 페이지와 함께 제공되는 모든 것 - 하드코어)을 확인하십시오 . 귀하의 경우에는 할 수도 free -g
있습니다요약한 자리 단위(기가비트)입니다.
findmnt
추가 메모리 드라이버를 사용하면 큰 페이지 행을 표시할 수 있습니다.
/dev/hugepages hugetlbfs ... pagesize=2M
귀하의 경우(관찰을 사용하는 무거운 수학 작업)에는 이 기능을 켜야 합니다. 그러나 이는 귀하의 질문과 직접적인 관련이 없으며 최적화에 가깝습니다.
이 모든 일은 저절로 일어나야 합니다. Mathematica에는 메모리가 필요하고 커널이 이를 제공하므로 문제 없습니다. 그게 바로 메모리를 위한 것입니다. 주변에 메모리를 많이 차지하는 다른 프로그램은 없습니다.
너무 게을러서 제공한 버전을 확인할 수 없습니다. LTS? 어딘가에 문제가 있는 것 같습니다. 특정 버전의 matlab이나 ubuntu 또는 설치에 문제가 있습니다. 도움이 되길 바랍니다. 모든 것이 "최신"인지 확인하세요.
또한 8GB 메모리(80%가 무료로 "사용 가능"하다고 가정)가 사용되면 속도가 빨라집니다.
에 관해서는교환미친 것을 최적화하려는 경우가 아니라면 이것은 여기서 중요하지 않으며, 그래서도 안 됩니다. 일반적으로 matlab에서는 커널이 스왑을 시작하는 것을 원하지 않습니다.