리눅스이야기

포트란 메모리 leak 찾기

스핏파이어 2018. 6. 18. 16:48

memprof 나 Valgrind 이용


포트란에 c 언어 첨부해서 이용하는 것과 동일하게 됨


Valgrind 단순 예제(g 포트란 이용시 -g 옵션으로 이용가능)

        gfortran -g myprog.f90
        mv a.out myprog
        valgrind myprog


mpich 이용시 찾는 방법

mpirun -n 6 valgrind --leak-check=full --show-reachable=yes --log-file=nc.vg.%p ./core.exe


우선 컴파일시 -g 옵션으로 진행을 하고 나서 

--leak-check=full : 에러 발생시 소스와 라인 위치 모두 출력

--log-file=** : 체크결과 저장할 로그 파일


실행 후

Leak summary에서 대략적인 내용 확인

각 라인을 확인하여 문제가 있는 코드상의 위치들을 확인해 볼것(definitely lost 부분 확인)

보통 MPI 를 이용할 경우에 MPI 에 대해서 memery leak 이 나오는 경우가 있는데, 이 경우 해당 부분이 확실하지 않은 경우, 무시하거나 또는 suppression 을 이용하여 해당 결과를 무시할 수 있게 해야함.