多核心與同步
關於平行程式中使用的屏障同步(barrier synchronization),下列說明何者正確?
- A建立一次只有一個執行緒能進入的部分
- B在所有執行緒都抵達該處之前,讓先到的執行緒等待
- C阻止記憶體操作順序調換的指令
查看答案與解析
正確答案:B. 在所有執行緒都抵達該處之前,讓先到的執行緒等待
在模擬等情況下,必須所有執行緒完成一個步驟的運算後,才能進入下一個步驟。在屏障同步中,各執行緒會在屏障處停下,等最後一個執行緒抵達時,所有人再一起前進。若運算量有所偏頗,快的執行緒等待慢的執行緒的時間就會增加,所以為了效能,把工作平均分配很重要。
- A. 那是以鎖進行的互斥。
- B. 正確。依階段讓所有人步調一致。
- C. 那是記憶體屏障,名稱雖然相似,但是不同的東西。