Python 並行程式設計教程 | Lynda教程 中文字幕
嗨, 歡迎來到課程的第一部分。
平行計算和Python入門。
在本節中, 我們將討論平行計算和記憶體架構。
我們還將關注記憶體組織和並行程式設計模型。
接下來, 我們將看到如何設計並行程式, 並評估並行程式的效能。
此外, 我們將介紹Python。
並且我們將與流程一起工作, 並與他們一起調節。
所以我們來看看這部分的第一部影片。
平行計算記憶體架構。
在這個視訊中, 我們將瞭解Flynn的分類法, 其中包括SISD, MISD, SIMD和MIMD。
我們現在來看看平行計算記憶體架構。
基於可以同時處理的指令和資料的數量, 計算機系統被分為四類。
一, 單指令單資料, SISD。
二, 單指令多資料, SIMD。
三, 多指令單資料, MISD。
四, 多指令多資料, MIMD。
這種分類被稱為Flynn的分類法。
讓我們明白SISD是什麼。
SISD計算系統是一個單處理器。
它執行在單個數據流上操作的單個指令。
在SISD中, 依次處理機器指令。
在一個時鐘週期中, CPU執行一次, 取出的操作。 CPU從被稱為暫存器的儲存器區域讀取資料和指令。
二, 解碼。 CPU解碼指令。
三, 執行。該指令是對資料進行的。操作結果儲存在另一個暫存器中。
一旦執行階段完成, CPU將自己設定為開始另一個CPU週期。
這就是SISD架構架構的工作原理。
在這些型別的計算機上執行的演算法是連續的或序列的。
因為它們不包含任何並行性。
SISD計算機的示例是具有單個CPU的硬體系統。
這些架構的主要元素, 也稱為馮·諾依曼(Von Neumann)架構, 如圖所示。
一, 中央儲存單元。這用於儲存指令和程式資料。
二, CPU。這用於從儲存器單元獲取指令和/或資料, 該指令和/或資料對指令進行解碼並依次執行它們。
三, I / O系統。這是指程式的輸入資料和輸出資料。
傳統的單處理器計算機被分類為SISD系統。
該圖具體顯示了在獲取, 解碼和執行階段使用CPU的哪個區域。
現在我們來看看MISD是什麼。
在這個模型中, 在處理器中, 每個都有自己的控制單元, 共享一個記憶體單元。
並且每個時鐘週期, 從儲存器接收的資料被所有處理器同時處理。
每個都與從其控制單元收到的指令相矛盾。
在這種情況下, 通過在同一條資料上執行多個操作來獲得並行性, 指令級並行性。
在這些架構中可以有效解決的問題型別相當特別。
如關於資料加密的那些。
為此, 電腦MISD在商業領域沒有找到空間。
MISD電腦比實際配置更多是一種智力鍛鍊。
這就是MISD架構方案的外觀。
接下來我們來看一下SIMD。
SIMD計算機由n個相同的處理器組成, 每個處理器都有自己的本地儲存器, 可以儲存資料。
所有處理器都可以在單個指令流的控制下工作。
除此之外, 還有n個數據流。
一個為每個處理器。
處理器在每個步驟上同時工作並執行相同的指令, 但是在不同的資料元素上。
這是資料級並行性的一個例子。
SIMD架構比MISD架構更加通用。
涵蓋廣泛應用的許多問題可以通過SIMD計算機上的並行演算法來解決。
另一個有趣的特徵是這些計算機的演算法相對容易設計, 分析和實現。
限制是, 只有可以分為多個子問題的問題, 這些問題都是相同的, 每個問題將通過同一組指令同時解決。
可以使用SIMD電腦進行定址。
用超級計算機開發, 根據這個標準, 我們必須提到連線機, 1985思想機。
一個NPP, 從1983年是NASA。
正如我們將在第六部分中看到的那樣, GPU程式設計與python, 現代圖形處理器單元的Athene或GPU, 搭配許多SIMD嵌入式單元, 已經導致了更廣泛地使用這種計算機的典範。
我們現在開始瞭解MIMD是什麼。
根據Flynn的分類, 這類平行計算機是最通用, 更強大的類。
這裡有終端處理器和指令流, 以及n個數據流。
每個處理器都有自己的控制單元和本地儲存器。這使得MIMD架構比SIMD中使用的架構更具計算能力。
每個處理器在其自己的控制單元發出的指令流的控制下操作。
因此, 處理器可以在不同的資料上執行在不同的程式中。
解決不同的子問題, 可以成為一個更大問題的一部分。
在MIMD中, 通過執行緒和/或程序的並行級別來實現架構。
這也意味著處理器通常非同步執行。該類中的計算機用於解決SIMD模型不需要常規結構的問題。
如今, 這種架構應用於許多PC, 超級計算機和計算機網路。
但是, 有一個你需要考慮的櫃檯。非同步演算法難以設計, 分析和實現。大。
所以現在我們知道平行計算記憶體架構如何工作。
在下一個視訊中, 我們將看看記憶體組織。