2011-09-07 3 views
0

그래서 질문은 다음과 같습니다. 1. mapreduce 오버 헤드가 너무 커서 다음과 같은 문제가 있습니까? 누구나 (예를 들어 Disco에서) 각지도/순환주기가 매우 가벼운 작업에 소요되는 시간에 대한 아이디어가 있습니까? 2.이 문제에 대한 mapreduce의 더 나은 대안이 있습니까?mapreduce 대 다른 병렬 처리 솔루션

지도에서 내 프로그램은 60 개의지도 단계와 60 개의 감소 단계로 구성되며 모두 함께 1 초 내에 완료되어야합니다. 이 방법으로 해결해야 할 문제 중 하나는 약 64000 개의 변수가있는 최소 검색입니다. 검색을위한 헤 시안 행렬은 대각선을 따라 크기가 64x64 인 1000 개의 블록 행렬과 극단적 인 오른쪽과 아래쪽에있는 블록 행이있는 블록 행렬입니다. 이 섹션의 마지막 섹션은 block matrix inversion algorithm입니다. 각 Schur 보완재 S_A 및 S_D는 하나의지도 감소 단계에서 계산할 수 있습니다. 역행렬의 계산은 한 단계 더 걸립니다.

내 연구에서 지금까지, mpi4py는 좋은 내기처럼 보입니다. 각 프로세스는 계산 단계를 수행하고 각 단계가 끝나면 클라이언트에 다시보고 할 수 있으며 클라이언트는주기에 대한 새 상태 변수를 사용하여보고 할 수 있습니다. 이렇게하면 프로세스 상태가 손실되지 않고 모든 업데이트를 통해 계산을 계속할 수 있습니다. http://mpi4py.scipy.org/docs/usrman/index.html

이 위키는 몇 가지 제안을 보유하고 있지만, 사람이 가장 개발 솔루션에 방향을 가지고 않습니다 http://wiki.python.org/moin/ParallelProcessing

감사합니다!

+1

map-reduce와 MPI는 근본적으로 다른 접근 방식입니다. 어떤 것이 문제에 더 잘 맞습니까? –

+0

네, 그것들은 다릅니다.이 질문에 대한 질문은이 과제에 대해 다른 질문보다 분명히 좋은 질문입니다. 또한이 특정 문제에 대해 가장 많이 개발 된 대안은 무엇입니까? – fodon

답변

5

MPI는 클러스터 노드간에 메시지를 전달하여 병렬 처리를 구현할 수있는 통신 프로토콜입니다. MPI로 구현 된 병렬 처리 모델은 프로그래머에 따라 다릅니다.

MapReduce에 대한 경험이 없지만 특정 병렬 처리 모델이며 구현하기 쉽도록 설계되었습니다. 이런 종류의 추상화는 프로그래밍 시간을 줄여 주며 문제에 대한 적절한 해결책을 제공하지 않을 수도 있습니다. 그것은 모두 당신이하려는 것을의 본질에 달려 있습니다.

병렬 처리의 트릭은 가장 적합한 솔루션이 종종 특정 문제에 해당하며 문제에 대한 자세한 내용을 알지 못하여 권장 사항을 작성하기 어렵다는 것입니다.

당신이 직장을 운영하는 환경과 프로그램이 Flynn's taxonomy에 속하는 곳에 대해 더 많이 알 수 있다면 좀 더 유용한 제안을 할 수있을 것입니다.

+0

SIMD입니다. 그러나 더 정확한 설명을 보려면 제 수정 된 문제 진술을보십시오. – fodon