1
현재 MPI 응용 프로그램에 문제가 있습니다. 내가 산발적 형태의 MPI 오류를 수신하고MPI 메시지 잘림 오류의 출처를 찾는 방법은 무엇입니까?
: 내가 볼 수있는 위치에 모르는 그러나
Fatal error in MPI_Allreduce: Message truncated, error stack:
MPI_Allreduce(1339)...............: MPI_Allreduce(sbuf=0x7ffa87ffcb98, rbuf=0x7ffa87ffcba8, count=2, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD) failed
MPIR_Allreduce_impl(1180).........:
MPIR_Allreduce_intra(755).........:
MPIDI_CH3U_Receive_data_found(129): Message from rank 0 and tag 14 truncated; 384 bytes received but buffer size is 16
rank 1 in job 1 l1442_42561 caused collective abort of all ranks
exit status of rank 1: killed by signal 9
. Allreduce 함수 호출에서 오류가 발생하지만 여러 개가있는 것을 알고 있습니다.
어떤 함수 호출이 오류를 생성하는지 어떻게 알 수 있습니까? 간단한 printf 디버깅은 오류가 처음 발생하기 전에 함수가 백만 번 호출 될 수 있으므로 도움이되지 않습니다.
또한 프로그램 시작 후 또는 바로 시작되지 않을 수도 있습니다.
오류가 있음은 분명합니다. 더 큰 문제는 그 시점에서 잘못하고있는 것입니다. 당신이 그것을 알아낼 수 있었습니까? –
오류가 발생하여 잠자기를 추가하고 gdb를 사용하여 다른 프로세스에 연결 한 다음 호출을 다시 추적함으로써이를 파악할 수있었습니다. 그것은 다른 경로가 동일한 경로를 따르고 있다고 가정하는 발산하는 코드 경로로부터 비롯된 것입니다. – Blackclaws