멀티코어와 동기화
병렬 프로그램에서 사용되는 배리어 동기화(barrier synchronization)에 대한 설명으로 올바른 것은?
- A한 번에 하나의 스레드만 들어갈 수 있는 부분을 만든다
- B모든 스레드가 그 지점에 도착할 때까지, 먼저 도착한 스레드를 기다리게 한다
- C메모리 동작의 순서 변경을 막는 명령
정답과 해설 보기
정답: B. 모든 스레드가 그 지점에 도착할 때까지, 먼저 도착한 스레드를 기다리게 한다
시뮬레이션 등에서는 모든 스레드가 한 단계 분량의 계산을 끝낸 뒤에 다음 단계로 진행해야 합니다. 배리어 동기화에서는 각 스레드가 배리어 지점에서 멈추고, 마지막 스레드가 도착한 시점에 모두가 진행합니다. 계산량에 편차가 있으면 빠른 스레드가 느린 스레드를 기다리는 시간이 늘어나므로, 일을 균등하게 나누는 것이 성능을 위해 중요합니다.
- A. 그것은 락에 의한 배타 제어입니다.
- B. 맞습니다. 단계마다 모두의 보조를 맞춥니다.
- C. 그것은 메모리 배리어이며, 이름은 비슷하지만 별개입니다.