매트랩 사용 관련하여 궁금한게 있습니다

개굴리   
   조회 5518   추천 0    

아시는분이 매트랩을 사용중인데 cpu를 별로 사용하지 못하는것 같습니다

CPU는 Intel Xeon Gold 6258R을 두개 장착하여 사용중입니다.

저는 매트랩이라는 프로그램을 잘 모릅니다. 매트랩으로 뭔가 연산한다고 하는데 연산할때 cpu를 얼마 사용하지 않아 제 성능이 나오지 않는것 같아요

intel speed step은 켜져있고, 아무 작업도 하지 않을 땐 cpu 클럭은 1ghz 정도로 유지되다가 매트랩을 사용하면 약 1.5ghz~2.0ghz를 왔다갔다 합니다

cpu 스트레스 테스트시 3.5ghz까지 상승하는걸 보면 cpu의 기능엔 문제 없는것 같아요

cpu의 사용량은 10%를 넘지 못합니다.. 원래 이렇게 작동하는건지 모르겠으나 i9 10900kf가 장착된 pc에서는 5ghz를 넘깁니다 그만큼 퍼포먼스도 나온다고 하네요


뭐가 문제일까요.. 설정쪽의 문제일까요? 뭘 건드려야 할지 모르겠네요..

짧은글 일수록 신중하게.
박문형 2021-08
사용하는 OS는 무엇인가요??

윈도우즈라면 모든 코어가 인식하고 메모리 용량도 다 인식하는지요??

CPU 모니터링 프로그램을 모든 코어가 보이게 셋팅하고 매틀랩 돌렸을 때 몇 개의 코어까지 동작을 하나요??

계산을 하거나 시뮬레이션 하는 전문 프로그램들은 심한 경우 코어 하나만 사용하고 CPU 클럭빨에 의해 속도가 결정되는 프로그램이 있고

모든 코어를 사용하지만 CPU 클럭이 어느 정도만 되어도 속도가 빠른 프로그램이 있습니다..


만들어진지 오래된 프로그램일수록 CPU 클럭빨에 의존하는 경우가 많습니다..

매트랩 사이트에 가보면 어느 정도의 시스템이 최소이고 어느 정도의 시스템에 최적화 되어 있다는 게시물이 아마 있을 것입니다..

사용 버젼 잘 채크해보시고요.. 클럭빨로 돌아가는 프로그램인지 코어 빨로 돌아가는 프로그램인지 확인하세요..

클럭빨로 돌아가는 프로그램이라면 사용하는 코어 수를 줄이고 (보통 바이오스에서 셋팅 가능) 동작하는 속도는 최대로 셋팅하세요..(스피드스탭 디세이블)
     
개굴리 2021-08
사용하는 OS는 윈도우 10입니다.

메모리는 768gb고 모든 코어를 인식하고 있는 것 같습니다.

본문에는 작성하지 못했지만 파이선도 매트랩과 비슷하게 cpu를 사용하고 있습니다.

제가 이런 프로그램이나 hw쪽으로는 너무 무지해서 단어들이 너무 생소합니다.. 매트랩은 확인하지 못했지만 파이선 연산(?)시 모든 코어를 사용하고 있는것 같았습니다
(작업관리자-성능탭-cpu 마우스 우클릭-논리그래프로 확인시 코어들이 약0~2%씩 사용하고 그러더라구요)

코어 수를 줄이면 성능이 더 떨어지지 않을까요?
          
박문형 2021-08
프로그램이 재대로 돌아가려면 OS가 시스탬에 재대로 인식되고 돌아가야 합니다..

비교하신 i9 10900KF 는 10코어에 20쓰레드 기본 동작주파수가 3.7Ghz 터보모드 (1코어만 동작시)에서 5.3Ghz 까지 올라갑니다..

https://ark.intel.com/content/www/kr/ko/ark/products/199331/intel-core-i9-10900kf-processor-20m-cache-up-to-5-30-ghz.html

사용하시는 스케일러블 시스템이 비교하신 시스템보다는 몇 배나 비싸겠지만 CPU 모델이 메트랩 사용보다는 가상화 OS 같은 것(VMWARE)

을 사용하기에 더 좋은 모델로 가버렸습니다..

https://ark.intel.com/content/www/kr/ko/ark/products/199350/intel-xeon-gold-6258r-processor-38-5m-cache-2-70-ghz.html

그렇다고 CPU를 바꾸기는 많이 힘드실 것이고요.. (씨피유만 개당 몇백만원 짜리인지라..)

사용 중인 시스템의 코어를 절반으로만 줄여도 설사 2.0GHz 로 동작한다고 해도 현재 상황보다는 나을 수도 있습니다..
뽀뽀중 2021-08
모든 코어를 사용하려면, 프로그램이 지원을 해야 할것 입니다.

검색을 해보니, 매트랩에서 Parallel Computing Toolbox를 사용해서 프로그램을 작성해야, 모든 코어를 사용할수 있을것 같습니다.
저도 매트랩을 잘 몰라서...

https://kr.mathworks.com/help/parallel-computing/getting-started-with-parallel-computing-toolbox.html
dateno1 2021-08
아무래도 코어 개수 제대로 못 쓰는중인듯합니다

사용율이란게 코어 개당 사용율*코어 개수의 비율이니 코어 놀리면 뚝뚝 떨어짐
박문형 2021-08
매트랩 프로그램은 상용이고 아마도 대학교/연구소는 할인되어서 라이센스가 따로 주어질 것입니다..

그러나 그것은 본 프로그램만이고 다른 플러그인 같은 것은 상용인지 아닌지는 모릅니다..

학교라면 매트랩 공급 받는 리셀러가 어디인지 알아내서 문제점을 문의해보세요...
언젠가는 2021-08
매트랩은 기본적으로 클럭빨 싱글 쓰레드 입니다.
개별 함수 별로 멀티 쓰레딩을 하지만 데이터가 충분히 커야 의미가 있습니다. 내부적으로 BLAS인데, 인텔이니까 MKL이 사용됩니다.
코드를 고치는 방법이 가장 좋습니다. (예: for -> parfor, scalar 연산->vector/matrix 연산, iterative->batch 등)

기본적으로 싱글쓰레드 인지라
전체 cpu 사용량은 10%를 넘지 않아도 말이 되구요, (6258R 2개면 56코어입니다. 다 쓰기 정말 힘들겁니다.)
개별 cpu 사용량은 100%에 가까운게 한두개는 무조건 있어야 합니다.

Xeon 6258R*2에서 1.5ghz~2.0ghz를 왔다갔다 하고, i9 10900k에서 5ghz 나오는건 제가 코드를 보지 못해서 정확하게 말씀드릴수는 없습니다만...
저의 추측은 데이터 사이즈가 작은데 cpu 두개와 AVX 인스트럭션이 사용되는것 같습니다.
cpu 두개 다 사용하면 qpi를 넘어가야 합니다.
SIMD 연산 중에서도 AVX는 전력소모가 많아서 cpu 클럭을 일부러 떨어뜨리는데요 (그래도 SIMD라서 총 처리속도는 빠릅니다)
맷랩 최신버전에 xeon이라면 자동으로 선택될겁니다.

matlab 스타트업에 관련 세팅 수정하는 부분이 있으니 한번 수정해 보시기를 바랍니다.

마지막으로... 라이센스 제대로 안깔면 느려집니다. 라이센스도 한번 확인해 보시구요.
     
개굴리 2021-08
답변 감사드립니다.

본문에는 적지 못했지만 파이선 연산(?)시에도 매트랩과 비슷하게 cpu 클럭이 1.5ghz~2.0ghz을 왔다갔다 하면서 기본 속도까지 못가더라구요

이런쪽으로는 무지해서 언어나 단어들이 많이 어렵네요..

파이선 연산시 작업관리자-성능탭-cpu 마우스 우클릭-논리 그래프로 변경하면 모든 코어를 사용하거나 사용하지 않거나 왔다갔다 합니다

각 코어의 사용률은 약 0~2%정도 사용하고 있는것으로 보여집니다.

매트랩은 싱글 쓰레드라고 하셨는데 싱글 쓰레드라면 쓰레드를 하나만 쓴다는 말씀이실까요?

말씀 주신 내용과 전혀 다르게 이해하고 있는것 같아도 양해 부탁드리겠습니다..
          
언젠가는 2021-08
매트랩 인터프리터 (그러니까 매트랩 메인 루프)는 쓰레드 1개만 써서 돌아갑니다.
물론 추가적인 gui, io 쓰레드 같은건 다른 쓰레드로 돌수 있습니다.
파이선 인터프리터도 비슷하게 쓰레드 1개만 써서 돌아갑니다. (뭐 설명 다 하면 복잡한데... GIL 때문입니다)
그래서 matlab은 parfor, python은 multiprocessing 라이브러리를 써서 구현을 해야 모든 cpu를 쓸수 있습니다.

문제가 세가지 입니다.
1) 쓰는 코어의 사용률이 낮은 문제: 제대로 돌아간다면, 개별 cpu 사용량은 100%에 가까운게 한두개는 무조건 있어야 합니다. 이게 없다면 데이터나 코드가 자잘하게 짜여졌을 가능성이 큽니다. 혹은 io같은거에 걸려있을수도 있구요.
2) 쓰는 코어의 클럭이 낮은 문제: cpu 사용량이 낮아서 자동으로 클럭을 떨어뜨렸을수도 있고, SIMD AVX 때문에 떨어졌을수도 있습니다.
3) 모든 코어를 못쓰는 문제: 맷랩과 파이선 인터프리터의 문제입니다. 해결하기 위해서는 관련 라이브러리를 사용해서 구현을 바꿔야 합니다.

지금까지 말한건 일반적인 개요이고, 프로파일링 결과가 있어야 좀더 자세한 답변을 할수 있습니다.
박문형 2021-08
보통 인텔 CPU는 1코어당 2 쓰레드 입니다..

매트랩은 싱글 쓰레드라고 하셨는데 싱글 쓰레드라면 쓰레드를 하나만 쓴다는 말씀이실까요?  ==> 네...


QnA
제목Page 3042/5703
2014-05   5118120   정은준1
2015-12   1653679   백메가
2016-10   5361   뮤라
2007-01   5361   조재영
2005-11   5361   박신석
2007-09   5361   김승훈
2012-03   5361   김효수
2007-11   5361   김창현
2009-02   5361   the촌놈
2018-07   5361   그린
2017-12   5361   암브로시아
2016-10   5361   미므미므
2009-01   5361   이승엽
2016-05   5361   NAS고장났다…
2005-12   5361   오상식
2012-01   5361   윤호주
2008-04   5361   박우영
2014-10   5361   맑은여름
2012-01   5361   조명수
2012-10   5361   akfalles
2017-10   5361   tvboy
2008-06   5361   민지훈