2011-03-31 5 views
0

GAE MapReduce에서 얼마나 많은 연산 집약적 인 이득을 기대할 수 있습니까? 관심있는 시나리오는 계산 집약적 인 예입니다. 예를 들어 단일 스레드 단일 코어 응용 프로그램에서 1 조 개의 무작위 수레를 곱하면됩니다. 그런 다음 1000 명의 MapReduce 직원이 각각 10 억 개의 임의 숫자를 곱해서 모든 직원이 끝나면 "완료"한다고 알리는 것을 상상해보십시오. 중요한 경우 결제가 사용 설정되었다고 가정합니다. (그렇지 않을 수도 있습니다).Google App Engine MapReduce은 얼마나 빠릅니까?

편집 : 의견 작성자가 설명을 요청했습니다. 제목이 개정되었습니다. 작업이 단일 스레드 50000 초 걸리고 다른 구현에서 1000 MapReduce 작업자가 고용되고 500 초 후에 끝나면 성능 이득은 100 배가됩니다. 1000 명의 근로자 : 100 배의 이득, 약간 실망 스럽지만,이 예에서는 그렇습니다. 어떻게 빨리 끝낼 수 있습니까? 10,000 명의 직원을 불러 줄 수 있습니까? 이 질문은 제한 및 할당량과 관련이있을 수 있습니다. 적절한 예산을 책정하십시오. MapReduce의 연산 집약적 인 성능 향상은 점근선에 도달합니까? 그렇다면 점근선에서의 성능 향상은 무엇입니까? URL에 직면 한 사용자가 많은 양의 데이터를 생성하는 데 MapReduce에 대한 정보에도 의견이 있었지만 Datastore 집약적 인 응용 프로그램의 성능과 MapReduce에 다시 작성된 동일한 응용 프로그램의 성능에 대한 질문이 아닙니다. 데이터 집계 활동은이 계산 중심 시나리오에서 최소화됩니다. MapReduce 애플리케이션에 Datastore 활동이 항상 존재한다는 사실을 알고 있습니다. 그러나 이것은 계산 집약적 인 시나리오이므로 Datastore 활동과 Datastore 엔티티의 크기가 계산 된 성능 향상에 큰 영향을주지는 않습니다. 작업은 경과 시간의 1 % 미만 동안 Datastore를 사용합니다. (MapReduce가 사용하는 대기열에 대기중인 작업을 수행하는 데 필요한 최소값을 제외하고) 많은 양의 통신 대역폭이 관련된 시나리오도 아닙니다. 문제는 컴퓨팅 부하가 많은 단일 스레드 Non-MapReduce 작업의 경과 시간을 MapReduce의 동일한 작업 경과 시간과 비교하는 것입니다. MapReduce는 다중 작업자가 있기 때문에 본질적으로 멀티 스레드입니다. 나는 "작업"이라는 단어를 일반적으로 사용합니다. 즉, "작업이란 작업"을 의미합니다. 이익은 근로자 수의 함수가 될 수 있지만 (필연적 인 것은 아님), 따라서이 예에서 1000 명의 근로자를 언급했다.

답변

2

여기서 정확히 무엇을 묻고 있는지 명확하지 않습니다. 그것이 얼마나 효율적인지 묻고 있습니까? 얼마나 싸구려 요? 얼마나 빠릅니까?

일반적으로 App Engine은 사용자 측 사이트를 제공하도록 설계되었으며 App Engine mapreduce API가 사용자 보조 사이트에서 생성되는 대용량 데이터를 처리하는 데 도움이됩니다. App Engine 외부에서 호스팅되는 많은 양의 데이터가 있고 그것에 대한 대규모 데이터 처리를 원한다면 App Engine은 아마도 당신을위한 도구가 아닙니다.

성능과 관련하여 각 작업자가 순차적으로 작업을 수행 할 때와 똑같이 작업을 수행 할 것으로 기대할 수 있으므로 초당 항목은 대략 정규직 수를 곱한 근로자 수입니다. 간접비. 끝날 때마다 약간의 지연이있을 수 있지만, 다른 근로자가 다른 시간에 마칠 때, 이것이 얼마나 중요한지는 작업 맵 개선이 데이터를 샤딩하는 데 얼마나 효과가 있는지에 달려 있습니다. 데이터 저장소 입력을 사용하면이 방법은 상당히 가난했지만 이전에는 훨씬 나아졌습니다.

보유 할 수있는 매퍼의 수는 앱에 청구 기능을 사용할 수 있는지 여부, 앱에 대한 다른 트래픽 양, 요소별로 매퍼 작업 소요 시간 등 여러 가지 요인에 따라 다릅니다. 이것을 결정하는 유일한 방법은 조금 실험하는 것입니다.

+0

기본적으로 얼마나 빠릅니다. 편집을 참조하십시오. – H2ONaCl

+0

@broiyan 성능 세부 정보로 업데이트되었습니다. –