이것은 인터뷰 질문입니다.병렬 계산 합계
N 개의 노드로 구성된 각 노드는 몇 개의 필드와 메소드로 구성됩니다. 이들은 :
// Every node has an ID. All of these IDs are sequential, and begin with 0.
// i.e. all ids are uniquely in the range of 0 t N-1
int id;
int val; // Every node has a value
int max; // max = N. Every node knows how many nodes are in the system.
void send(int idTo, int payload)
int recv(int idFrom)
동시에 모든 노드에서 실행되는 코드의 한 조각을, 쓰기 등이이 시스템의 모든 노드가 시스템의 모든 노드의 값의 합을 알고 실행이 완료 될 때.
내가 생각할 수있는 솔루션은 각 노드에서 다른 모든 노드로부터 값을 가져온 다음 추가하는 것입니다. 이 방법으로 우리는 send와 recv 함수를 둘 다 사용할 것이다. 모두 동시에 실행됩니다. – abhinav
해결 방법을 찾기 위해 검색 할 키워드는 "병렬 접두어" "스캔 알고리즘" "재귀 적 배가" – Novelocrat
"전체 축소"또는 "전역 축소"도 고려하십시오 – Novelocrat