ltrace를 사용하여 mpi 응용 프로그램의 라이브러리 함수 호출을 얻는 방법을 알고 싶지만 ltrace가 작동하지 않고 mpirun이 성공하지 못합니다. 아이디어가 있으십니까?mpi 프로그램에 ltrace를 사용하는 방법은 무엇입니까?
2
A
답변
5
당신은 간단하게 사용할 수 있어야합니다 :
$ mpiexec -n 4 -other_mpiexec_options ltrace ./executable
하지만 그건 다른 계급에서 출력이 병합하기 때문에 큰 혼란을 만들 것입니다. 더 나은 옵션은 ltrace
의 출력을 각 순위의 개별 파일로 리디렉션하는 것입니다. 일부 MPI 구현에서는 순위를 얻는 것이 쉽습니다. 예를 들어 Open MPI는 환경 변수 OMPI_COMM_WORLD_RANK
에서 세계 순위를 내 보냅니다. 다음 래퍼 스크립트 도움이 될 :
#!/bin/sh
ltrace --output trace.$OMPI_COMM_WORLD_RANK $*
사용법 : trace.0
, trace.1
, trace.2
및 trace.3
:
$ mpiexec -n 4 ... ltrace_wrapper ./executable
이 4 개 추적 파일, 각 순위에 대해 하나를 생성합니다. 그와 히드라 PM을 사용하여 기반 MPICH 및 기타 MPI 구현의
는 PMI_RANK
수출 및 위의 주어진 스크립트는 수정되어야하며 OMPI_COMM_WORLD_RANK
는 PMI_RANK
로 대체. 또한 MPI 구현의 두 제품군 모두에서 작동하는 범용 래퍼를 작성할 수도 있습니다.