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 명의 근로자를 언급했다.
기본적으로 얼마나 빠릅니다. 편집을 참조하십시오. – H2ONaCl
@broiyan 성능 세부 정보로 업데이트되었습니다. –