2013-09-05 1 views
3

OpenMPI를 통해 연결된 여러 시스템을 사용하여 Amazon EC3 플랫폼에서 계산을 수행합니다. 계산 비용을 줄이기 위해 스폿 인스턴스가 사용되며, 기계의 비용이 최대 사전 설정 가격 인 : http://aws.amazon.com/ec2/spot-instances/을 초과하면 자동으로 종료됩니다. 이상한 동작이 발생합니다 : 컴퓨터가 종료되면 MPI 통신기의 다른 프로세스가 계속 실행됩니다. 네트워크 인터페이스는 프로세스가 kill 신호를받은 다른 프로세스에게 알려줄 시간을 갖기 전에 잠잠 해졌다고 생각합니다.저 결합 병렬 프로세스에 대한 OpenMPI 사용자 정의 내결함성

MPI가 내결함성과 관련하여 많은 수준의 리소스를 제공하지 않는다는 여러 게시물을 읽었습니다. 다른 한편, 내 프로그램의 구조는 매우 간단하다 : 코드의 일부를 실행할 권한을 얻기 위해, 마스터 프로세스는 슬레이브 프로세스에 의해 쿼리된다. 마스터 프로세스는 응답 한 쿼리 수만 추적하고 상한에 도달하면 슬레이브에게 중지하도록 지시합니다. 노예들 사이에는 커플 링이 없다.

이전에 언급 한 것처럼 프로세스가 자동으로 중지되었을 때이를 감지 할 수 있기를 바랍니다. 그 경우 나는 그가하고있는 일을 여전히 살아있는 노예로 돌릴 것입니다. 사망 여부를 확인하는 간단한 방법이 있습니까? 나는 스레드와 소켓을 MPI 레이어의 나머지 부분과 독립적으로 사용하는 것을 생각했지만, 그것은 번거롭고 보입니다. 또한 마스터 프로세스 (비 스포트 인스턴스에서 시작됨)에서 각 프로세스와의 마지막 통신 시간 목록을 유지 관리하고 제한 시간을 지정하지만 슬레이브 프로세스가 종료되었음을 보장하지는 않습니다. "장벽"과 "마무리 함수가 모든 프로세스를 볼 수없고 잠재적으로 멈추는 문제도 있습니다."

내 질문은 프로세스가 조용히 죽었는지 여부를 감지하기 위해 어떤 종류의 솔루션을 구현하겠습니까? 당신은 내가 열기 MPI는 일을 할 수 정확히 모르겠어요?

사용하고있는 오픈 MPI 버전? 프로세스의 수가 감소와 호환되도록

답변

2

을 코드의 나머지 부분을 수정 (또는 않을 것 프로세스가 사라진 것을 감지하지 못합니다. 실패 후 Open MPI의 일반적인 동작은 런타임이 전체 작업을 중단한다는 것입니다.

불행히도 Open MPI에는 실패한 프로세스를 발견 할 수있는 메커니즘이 없습니다 (특히 Open MPI가 실패한 것조차 알지 못하는 경우). 그러나 모든 MPI 라이브러리의 향후 버전에이 기능을 추가하기 위해 많은 작업이 진행 중입니다. 이 동작을 지원하는 예제 구현 중 하나는 ULFM (www.fault-tolerance.org)이라는 Open MPI의 한 분야입니다. 거기에 무슨 일이 일어나는지 정확히 알 수있는 문서가 많이 있지만 근본적으로 내결함성을 추가하는 MPI 표준의 새로운 장입니다.

MPICH 3.0.3에서 사용할 수있는 오래된 노력이 있습니다. (불행히도 3.0.4에서 손상되었지만 3.1의 경우 다시 돌아와야합니다) (www.mpich.org). 이 저작물을 사용하기위한 설명서는 README에 있습니다.

이러한 노력의 문제점은 MPI 표준을 준수하지 않는다는 것입니다. 결국 MPI의 내결함성을 설명하는 장이있을 것이며 모든 MPI 구현은 호환 될 것입니다. 그러나 그 동안 모든 사람들에게 좋은 해결책은 없습니다.

+0

사용 된 OpenMPI 버전은 1.4.1입니다. 만약 그들이 내결함성 메커니즘을 구현하는 간단한 방법이 아니라면, 아마 프로세스가 죽었는지 아닌지를 주기적으로 점검 할 별도의 스크립트를 생성 할 것입니다. – vkubicki

0

PVM은 귀하의 경우 MPI에 대한 합리적인 대안 일 수 있습니다. MPI를 몇 년 전에 잃어버린 후에 더 이상 개발되지는 않았지만 PVM은 여전히 ​​대부분의 Linux 배포판에 미리 패키지되어 제공되며 내결함성이 내장되어 있습니다. API는 개념적으로 MPI와 매우 유사하지만 실행 모델은 조금 다릅니다. 병렬 프로그램의 작업이 MPI보다 1도 적은 결합을 허용한다고 말할 수 있습니다.

Linux에서 베오 울프 클러스터 컴퓨팅에 내결함성 마스터 작업자 PVM 응용 프로그램의 구현 예가 있습니다. 책 here에서 관련 장을 읽으십시오.

MPI의 내결함성은 MPI 포럼에서 MPI-3.0에 새로운 기능을 포함하도록 투표했을 때 표준에 제안 된 추가 기능이 거부되었습니다. FT가 MPI의 표준 기능이되기까지 예상보다 오래 걸릴 수 있습니다.

+0

PVM의이 기능을 공개 해주셔서 감사합니다! – vkubicki

관련 문제