2017-04-25 5 views
0

OpenMP 코드의 메모리 사용을 어떻게 측정합니까? 나는 메모리 사용량이 스레드 수와 함께 줄어들 것이라고 믿는다.Linux에서 OpenMP 코드의 메모리 사용을 측정하는 방법은 무엇입니까?

저는 Linux와 Intel Fortran 컴파일러를 사용하고 있습니다.

+1

* * 당신이 그렇게 생각하는 이유 "나는, 메모리 사용량이 스레드의 숫자로 줄일 생각합니다."? 나는하지 않는다. 물론 일반적으로는 아닙니다. –

+0

'/ usr/bin/time -l./yourProgram'을 실행할 수 있습니다. –

+0

다음 링크에서 알게되었습니다. http://www.nersc.gov/users/computational-systems/retired-systems/hopper/성능 및 최적화/openmp-effective-on-hopper/ – sam

답변

0

-l 매개 변수가있는 /usr/bin/time을 사용할 수 있습니다. 그래서, 당신은 실행됩니다 : 1MB의로

: 나는 당신의 프로그램을 가지고 있지 않기 때문에

/usr/bin/time -l ./yourProgram 

, 나는 dd 1MB의 2MB의, 4메가바이트 8MB의 블록을 생성하고이를 폐기와 예제를 제공합니다 메모리 블록 : 메가 바이트의 메모리 블록으로

/usr/bin/time -l dd if=/dev/zero of=/dev/null bs=1024k count=1 
... 
1855488 maximum resident set size 
... 

: A의

/usr/bin/time -l dd if=/dev/zero of=/dev/null bs=2048k count=1 
... 
2904064 maximum resident set size 
... 

4 메가 바이트 메모리 블록 : 8MB의 메모리 블록으로

/usr/bin/time -l dd if=/dev/zero of=/dev/null bs=4096k count=1 
... 
5001216 maximum resident set size 
... 

:

/usr/bin/time -l dd if=/dev/zero of=/dev/null bs=8192k count=1 
... 
9195520 maximum resident set size 
...