리눅스이야기
포트란 메모리 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 을 이용하여 해당 결과를 무시할 수 있게 해야함.