task level parallelism:utilizing multiple processors by running independent programs simutaneously
parallel processing program並行處理程序:在多個處理器上運行的單個程序
並行處理器怎麼共享數據:
1.具有單一地址空間的處理器爲程序員提供一個所有處理器共享的單一的內存地址空間。這種多處理器稱爲共享內存處理器。
共享內存處理器的協調稱爲同步。一種同步方法是鎖(任何時刻只允許一個處理器訪問數據的同步設備)。每次只有一個處理器可以得到鎖。
單地址空間多處理器的兩種類型:
訪問主存時間相同。對稱多處理器或均勻存儲器存取多處理器。
根據發出訪問請求的處理器和請求的字的關係,一些存儲器的訪問要比其他的要快。
2.消息傳遞。通過顯式發送和接收消息在多處理器之間通信。
消息傳遞用於具有私有內存而不是共享內存的機器。
單一總線連接的多處理器
多處理器高速緩存一致性:監聽協議
讀:多個數據副本在讀的時候不會發生問題。
寫:寫一個字時必須互斥的訪問。寫處理器在總線上發佈一個無效信號,所有的高速緩存都檢查自己是否有副本。一個寫操作完成後,所有處理器必須得到對象的新值。
通過網絡連接的多處理器
分佈式內存:被分成多個模塊的物理內存,在多處理器中的每個處理器周圍都有一些較近的模塊。
UMA uniform memory access 一致性內存訪問 不論字在哪裏,內存訪問時間是一樣的
NUMA nonuniform memory access 非一致性內存訪問 內存訪問時間取決於地址。和物理上分佈式內存是一樣的
高速緩存一致的非統一內存訪問CC-NUMA
集羣
完整的計算機,獨立的可升級的網絡。
缺點:管理N個節點的集羣和管理N個獨立節點的費用大致相當。而管理N個處理器共享地址的多處理器的費用相當於管理一臺節點的費用。
集羣通常以計算機I/O總線相連,而多處理器通常以計算機存儲總線相連,具有更高的帶寬。
內存的劃分:集羣數與內存和操作系統數目相同。
優點:大規模多處理器數量少,費用高。
集羣中很容易更換某個節點而無需關閉系統。
多線程multithreading
允許多個線程以交迭的方式在單個處理器上共享功能單元。處理器複製保存每個線程的獨立狀態。
每個線程都要寄存器堆的副本,獨立的程序計數器和獨立的頁表。內存本身是通過虛擬內存機制實現。
細粒度多線程:在每個指令中切換線程,結果是多個線程交叉處理。多用輪詢方式,跳過任何當時停止的進程。處理器必須能在每個時鐘週期切換進程。