多核心與同步

關於平行程式中使用的屏障同步(barrier synchronization),下列說明何者正確?

  1. A建立一次只有一個執行緒能進入的部分
  2. B在所有執行緒都抵達該處之前,讓先到的執行緒等待
  3. C阻止記憶體操作順序調換的指令
查看答案與解析

正確答案:B. 在所有執行緒都抵達該處之前,讓先到的執行緒等待

在模擬等情況下,必須所有執行緒完成一個步驟的運算後,才能進入下一個步驟。在屏障同步中,各執行緒會在屏障處停下,等最後一個執行緒抵達時,所有人再一起前進。若運算量有所偏頗,快的執行緒等待慢的執行緒的時間就會增加,所以為了效能,把工作平均分配很重要。

  • A. 那是以鎖進行的互斥。
  • B. 正確。依階段讓所有人步調一致。
  • C. 那是記憶體屏障,名稱雖然相似,但是不同的東西。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 64個核心持續同時以原子指令更新一個共用計數器時,即使增加核心也不會變快。其主要原因為下列何者?
  2. 關於NUMA(非均勻記憶體存取)系統,下列說明何者正確?
  3. 在Linux的NUMA系統中常用的首次接觸(first touch)策略(將頁面放在第一次寫入該頁面的執行緒所在節點的記憶體),下列關於需要注意之處的說明何者正確?
  4. 在平行程式中,即使增加核心數量,效能仍未如預期成長,下列何者不屬於其原因?
  5. 將迴圈的各次迭代分配給多個執行緒時,若每次迭代的運算量差異很大,適合的分配方式為下列何者?

這個領域的比較