普考-資訊處理計算機概要109 年第 3 題單選題
多處理器(multiprocessor)架構可大致分為兩個類別:共享實體記憶體位址空間與各自擁有實體記憶體位址空間。針對多處理器架構,下列敘述何者錯誤?
A共享實體記憶體位址空間的多處理器是利用快取一致的共享記憶體(cache coherent shared memory),來達到處理器之間的通訊(communication)
B各自擁有實體記憶體位址空間的多處理器間,是利用訊息傳遞(message passing)來達到處理器之間的通訊
C就硬體設計而言,共享實體記憶體位址空間的多處理器,相較於各自擁有實體記憶體位址空間的多處理器簡單正確答案
D就程式設計而言,移植一個循序(sequential)程式至藉由訊息傳遞的多處理器上平行化執行是比較困難的,因為任何一個處理器之間的通訊都需要在程式中明確敘述,否則程式無法正確執行
C正確答案
共享記憶體程式好寫但硬體設計較複雜(需快取一致性機制),分散式則相反。
為什麼答案是 C
錯誤(本題要選)。共享記憶體架構硬體設計反而較『複雜』,因為要處理快取一致性、記憶體同步、匯流排競爭等問題;分散式架構硬體較單純,但程式設計較難。
載入中…
完整詳解
Pro · 無限重點 共享記憶體程式好寫但硬體設計較複雜(需快取一致性機制),分散式則相反。
記口訣:共享『軟體簡單、硬體複雜』;分散式『硬體簡單、軟體複雜』。
逐選項分析
A✕
正確。共享記憶體架構透過 cache coherent shared memory 讓各處理器讀寫同一位址空間來通訊,需要快取一致性協定(如 MESI)維護資料正確性。
B✕
正確。分散式記憶體架構中每個處理器擁有自己的位址空間,彼此間必須透過 message passing(如 MPI)顯式傳遞訊息來通訊。
C✓ 正確
錯誤(本題要選)。共享記憶體架構硬體設計反而較『複雜』,因為要處理快取一致性、記憶體同步、匯流排競爭等問題;分散式架構硬體較單純,但程式設計較難。
D✕
正確。將循序程式移植到 message passing 平台時,程式設計者必須明確指定每次處理器間的資料傳遞時機與內容,否則程式無法正確執行,移植難度高。
多處理器兩大架構對照
| 面向 | 共享記憶體 (Shared Memory) | 分散式記憶體 (Distributed) | 備註 |
|---|
| 位址空間 | 單一共享 | 各自獨立 | 架構核心差異 |
| 通訊方式 | Load/Store 共享變數 | Message Passing | 如 MPI vs OpenMP |
| 硬體設計 | 複雜(需快取一致性) | 簡單(獨立節點) | 本題考點 |
| 程式設計 | 較簡單(類似單機) | 較困難(需明寫通訊) | 程式設計者負擔 |
| 擴充性 | 較差(匯流排瓶頸) | 較佳(可大規模) | HPC 常用分散式 |
C 選項把『硬體複雜度』故意顛倒。直覺上會覺得『共享』聽起來單純,但實際上要維護多顆 CPU 快取資料一致、避免 race condition,硬體代價很大;反而各自獨立的分散式節點硬體單純。