MPI 사양은 종료하기 전에 각 스레드에서 MPI_Finalize
을 호출하도록 지정합니다. 어설 션과 같은 런타임 오류와 함께 어떻게 작동합니까?MPI_Finalize 및 단정?
assert(cond)
및 cond
이 false로 평가되면 정상 프로그램 흐름이 변경되므로 MPI_Finalize
으로 전화 할 기회가 없습니다. 내가 SIGABRT
, SIGSEGV
및 god-knows-what-else를 잡아야합니까? 아니면 MPI 라이브러리가 어떻게 든 이것을 처리합니까?
나는 assert가 단순히 프로그램을 죽인다 고 가정한다. 쓰레드 제거는 lamhalt를 통해 스스로 호출되어야합니다. 하지만 이것은 단지 추측입니다. MPI_Finalze 등을 호출하기 위해 assert 대신 적절한 에러 핸들링을 사용해야합니다. – Bort