나는 Chudnovsky 수식에서 Pi를 계산하는 프로그램을 가지고 있습니다. 그것은 Java로 작성되었으며 요소의 색인을 포함하는 계승 (factorials)과 지수 (power)와 같은 중간 계산을 저장하는 데 사용되는 공유 벡터 (shared Vector)를 사용합니다.공유 메모리를 사용할 때 프로그램 속도가 빨라짐
그러나 동기화 된 벡터 (기본적으로 스레드 안전)이므로 하나의 스레드 만 읽고 쓸 수 있다고 생각합니다. 그래서 우리는 속도가 증가하는 대신에 많은 쓰레드가있을 때 계산 시간이 일정 해지는 것을 보았습니다.
내가이를 피할 수있는 방법이 있습니까? 동일한 공유 메모리에 너무 많은 스레드 읽기/쓰기가있을 때 수행 할 작업은 무엇입니까?
HashMap은 정말 좋은 생각이었습니다. 나는 그것이 이미 잊어 버렸습니다. 내 계산 된 물건 대부분을 저장하는 명백한 완벽한 선택이었습니다. – Mackiavelli