다음 코드에서 일치하지 않는 답이 나오는 경우가 있습니다. 코드 a.par ...
에서스칼라 병렬 콜렉션이 일관성이 없음
import scala.math.pow
val p = 2
val a = Array(1,2,3)
println(a.par
.aggregate("0")((x, y) => s"$y pow $p; ", (x, y) => x + y))
for (i <- 1 to 100) {
println(a.par
.aggregate(0.0)((x, y) => pow(y, p), (x, y) => x + y) == 14)
}
a.map(x => pow(x,p)).sum
는 14
또는10
를 계산한다. 누구나 컴퓨팅이 일관성없는 이유에 대한 설명을 제공 할 수 있습니까?