18 lines
898 B
Markdown
18 lines
898 B
Markdown
# 병렬 계산과 누적 순서
|
|
|
|
## 배경
|
|
|
|
여러 요소가 같은 DOF에 기여하며 부동소수점 합산 순서와 먼저 발견되는 오류가 결과를 바꿀 수 있다.
|
|
Thread 수와 scheduling이 source identity·결과·진단의 재현성을 바꾸면 비교 근거가 흔들린다.
|
|
|
|
## 선택
|
|
|
|
Worker는 자기 element/index buffer에만 local 결과를 쓴다. Join 뒤 stable COO/source 순서와
|
|
고정 reduction으로 전역 값을 누적한다. 오류 선택도 발견 시각 대신 지정된 순서를 따른다.
|
|
|
|
## 대안과 영향
|
|
|
|
공유 CSR에 직접 병렬 더하기는 완료 순서에 따른 합산을 만들므로 쓰지 않는다.
|
|
Buffer와 ordered reduction 비용을 감수하며 hash iteration과 worker 완료 순서를 결과 순서로 쓸 수 없다.
|
|
Reduction 순서를 바꾸는 최적화는 단순 refactoring이 아니라 수치 변경으로 검증한다.
|