멀티코어와 동기화
병렬 프로그램에서 코어 수를 늘려도 성능이 기대만큼 늘지 않는 원인으로 해당하지 않는 것은?
- A락 대기 등 스레드 간 동기화가 많은 것
- B스레드별 작업량에 큰 편차가 있는 것
- C각 스레드가 자신 전용 데이터만 읽고 쓰는 것
정답과 해설 보기
정답: C. 각 스레드가 자신 전용 데이터만 읽고 쓰는 것
병렬화의 효과를 방해하는 주된 원인으로는 병렬화할 수 없는 부분(암달의 법칙), 락이나 배리어로 인한 대기, 공유 데이터나 거짓 공유로 인한 캐시 라인의 오감, 작업의 편차, 메모리 대역폭 부족 등이 있습니다. 각 스레드가 자신 전용 데이터만 다룬다면 다른 스레드와의 통신이나 대기가 생기지 않으므로, 이상적인 병렬화에 가까워집니다.
- A. 동기화 대기는 성능 향상을 방해하는 대표적인 원인입니다.
- B. 작업의 편차는 느린 스레드를 기다리는 시간을 만듭니다.
- C. 맞습니다. 전용 데이터만이라면 성능 향상을 방해하지 않습니다.