기존 "거대(저는 꼭 이 표현을 써야겠습니다;;)" 프로그램을 병렬화 하기 위해서는 프로파일링 기술이 필수입니다. 그리고 그 프로파일 데이터를 분석하는 것이죠. 널리 쓰이는 프로파일러, GNU profiler(gprof)를 이용하면 텍스트 파일로 그 결과를 저장하게 됩니다. 프로파일 데이터의 필드가 무엇을 나타내는지, 각 행의 [x] 관계는 무엇인지 등등, 초면자에게는 어렵죠.
그래서 Visual Profiling 툴을 찾고는 합니다. 바로 gprof2dot 프로그램 입니다. [참고1] 페이지를 통해 알게 되었는데요. nose는 뭔지 모르겠으나, 필요 없습니다!!!
저는 포트란 기반 GEOS-Chem 프로그램을 gprof으로 프로파일링 해서 gprof2dot으로 비주얼 하게 뽑아냈습니다. 여러 페이지에 분할 인쇄해서 연구실에 붙이니 좀 그럴싸 합니다. 프로그램이 "거대" 하다보니 좀 복잡하네요.
gprof를 이용한 결과인 프로파일 결과 파일(.prof)을 gprof2dot의 input으로 지정하면 되기 때문에 프로그래밍 언어와 무관하다고 볼 수 있죠. 단, 중요한 것은 컴파일 하실 때 프로파일 지원하게 '-p' 옵션 하시길 바랍니다. 이미지 포맷은 PNG인데요. option으로... 다른 것도 지정하겠죠? (먼산)
[팁] 저렇게 "거대" 이미지(이미지도 거대하니;;)를 어떻게 분할 인쇄 할까요. 프로그램 사용하면 되겠지만서도... 저는 엑셀을 사용 합니다. 엑셀에 저 거대 이미지를 삽입하고 인쇄 미리보기에 가서 여백만 최소로 줄여주면 출력 후 하나로 합체 할 수 있습니다. 그럼~
[참고1] Visual profiling with Nose and gprof2dot
http://tarekziade.wordpress.com/2008/08/25/visual-profiling-with-nose-and-gprof2dot/
[참고2] Gprof2Dot
http://code.google.com/p/jrfonseca/wiki/Gprof2Dot
- 케루 -