IT 이모저모

Barrier 란? - 2

exien 2018. 3. 9. 08:18

컴파일러는 멀티 스레드 CPU 프로그래밍을 할 때 자동으로 의존성을 처리 할 수 없으므로 멀티 스레드 태스크 간의 종속성을 표현하고 해결하는 방법을 찾는 데 많은 시간을 소비합니다. 이러한 상황에서는 어떤 작업이 다른 작업의 결과에 의존 하는지를 나타내는 종속성 그래프 를 작성하는 것이 일반적 입니다. 이 그래프는 작업을 실행할 순서를 결정하고 두 작업 (또는 작업 그룹) 사이에 동기화 지점 (장벽)을 두어 두 번째 작업이 실행되기 전에 이전 작업이 완전히 끝나야 할 때 도움이됩니다. 이러한 그래프는 종종 스레드 구성 블록에 대한 인텔의 설명서 에서 이해하기 쉬운 예제와 같이 나무 같은 다이어그램으로 그려집니다 .컴파일러는 멀티 스레드 CPU 프로그래밍을 할 때 자동으로 의존성을 처리 할 수 없으므로 멀티 스레드 태스크 간의 종속성을 표현하고 해결하는 방법을 찾는 데 많은 시간을 소비합니다. 이러한 상황에서는 어떤 작업이 다른 작업의 결과에 의존 하는지를 나타내는 종속성 그래프 를 작성하는 것이 일반적 입니다. 이 그래프는 작업을 실행할 순서를 결정하고 두 작업 (또는 작업 그룹) 사이에 동기화 지점 (장벽)을 두어 두 번째 작업이 실행되기 전에 이전 작업이 완전히 끝나야 할 때 도움이됩니다. 이러한 그래프는 종종 스레드 구성 블록에 대한 인텔의 설명서 에서 이해하기 쉬운 예제와 같이 나무 같은 다이어그램으로 그려집니다 .




태스크 지향적 인 멀티 쓰레드 프로그래밍을 한 번도 해보지는 못했지만이 다이어그램은 종속성의 개념을 매우 분명하게 만듭니다. 빵을 얻기 전에 땅콩을 빵에 더 잘 넣을 수는 없습니다! 높은 레벨에서 이것은 작업의 순서 (땅콩 버터 이전의 빵)를 결정하지만 실제 생활에서 이것을하는 경우에 당신에게 분명하게 드러나는 어떤 것을 함축적으로 암시합니다. 당신이 땅콩 버터를 칠 때까지는 시작할 수 없습니다 캐비닛에서 빵 한 조각을 꺼 냈습니다. 당신이 혼자서 실생활에서 이것을한다면, 당신은 이것에 대해서 생각조차하지 않을 것입니다. 오직 1 명 뿐이므로 한 번에 한 단계 씩 진행하십시오. 그러나 우리는 원래 멀티 스레딩의 맥락에서이 문제를 논의했습니다. 즉, 서로 다른 코어에서 서로 다른 작업을 병렬로 실행하려고하는 것입니다.태스크 지향적 인 멀티 쓰레드 프로그래밍을 한 번도 해보지는 못했지만이 다이어그램은 종속성의 개념을 매우 분명하게 만듭니다. 빵을 얻기 전에 땅콩을 빵에 더 잘 넣을 수는 없습니다! 높은 레벨에서 이것은 작업의 순서 (땅콩 버터 이전의 빵)를 결정하지만 실제 생활에서 이것을하는 경우에 당신에게 분명하게 드러나는 어떤 것을 함축적으로 암시합니다. 당신이 땅콩 버터를 칠 때까지는 시작할 수 없습니다 캐비닛에서 빵 한 조각을 꺼 냈습니다. 당신이 혼자서 실생활에서 이것을한다면, 당신은 이것에 대해서 생각조차하지 않을 것입니다. 오직 1 명 뿐이므로 한 번에 한 단계 씩 진행하십시오. 그러나 우리는 원래 멀티 스레딩의 맥락에서이 문제를 논의했습니다. 즉, 서로 다른 코어에서 서로 다른 작업을 병렬로 실행하려고하는 것입니다.




이러한 종류의 문제를 피하기 위해 TBB와 같은 작업 스케줄러는 이전 작업 (또는 작업 그룹)이 완전히 실행될 때까지 작업 (또는 작업 그룹)을 강제로 대기시키는 메커니즘을 제공합니다. 앞에서 언급했듯이이 메커니즘을 장벽 또는 동기화 포인트라고 부를 수 있습니다.이러한 종류의 문제를 피하기 위해 TBB와 같은 작업 스케줄러는 이전 작업 (또는 작업 그룹)이 완전히 실행될 때까지 작업 (또는 작업 그룹)을 강제로 대기시키는 메커니즘을 제공합니다. 앞에서 언급했듯이이 메커니즘을 장벽 또는 동기화 포인트라고 부를 수 있습니다.




이런 종류의 일은 현대 PC CPU에 구현하는 것이 매우 쉽습니다. 원자 적 연산, 동기화 프리미티브, OS 제공 조건 변수 등 많은 강력한 도구뿐만 아니라 많은 유연성을 가지고 있기 때문에.이런 종류의 일은 현대 PC CPU에 구현하는 것이 매우 쉽습니다. 원자 적 연산, 동기화 프리미티브, OS 제공 조건 변수 등 많은 강력한 도구들이 존재할 뿐만 아니라 유연성도 높기 때문입니다.


'IT 이모저모' 카테고리의 다른 글

Barrier 란? - 4  (0) 2018.03.09
Barrier 란? - 3  (0) 2018.03.09
V30S 씽큐 9일 출시  (0) 2018.03.08
ARM, 새로운 VPU·GPU 발표 - 말리 V52·G52  (0) 2018.03.07
Barrier 란? - 1  (1) 2018.03.07