併發計算 VS 平行計算

2021-07-26 08:00:06 字數 916 閱讀 2906

我在網上看到很多講併發計算與平行計算區別的文章,感覺很多講得不是很抽象就是不全面,因此我決定自己好好總結一下。閒話少說,先看一張圖。

仔細看一下這張圖,先有個大概印象再繼續往下讀。

loading … …

看完上面的圖之後,這是我總結的幾點:

note:為了更好地比較並行與併發計算,我加入了序列計算。

序列計算->平行計算->併發計算

序列計算最老實也最死板,任何時候只做一件事,雷打不動,這件完成才能做下一件事;平行計算相比就沒有那麼專注了,它可以同時做多個相同的事情;併發計算就更沒有那麼專注了,它可以同時做多個不同的事情。

平行計算與併發計算關係密切。我們在作業系統課程中所學到的併發大多是基於單處理器的,程序交替執行,表現出一種同時執行的外部特徵。這種併發計算無法實現真正的加速效果。

平行計算(純粹的)通常是將乙個較大的問題分為較小的多個子問題,然後同時處理這些子問題,類似於演算法中的分治法。這種執行方式雖然可以獲得較好的加速效果,但是還可以獲得更好的加速效果。

這篇文章主要介紹了平行計算與併發計算的區別與聯絡。如果要深入地學習併發計算,可以參考作業系統的相關書籍,比如比較經典的《作業系統精髓與設計原理》。在掌握了二者的區別與聯絡之後,我們會繼續學習cuda平行計算。

維基百科-concurrent_computing

維基百科-parallel_computing

作業系統精髓與設計原理 第六版, [美]william stallings, 機械工業出版社

併發計算 VS 平行計算

並行 parallelism 是指在具有多個處理單元 如gpu或者多核cpu 的系統上,通過將計算或資料劃分為多個部分,將各個部分分配到不同的處理單元上,各處理單元相互協作,同時執行,已達到加快求解速度或者提高求解問題規模的目的。併發是乙個程式 演算法或者問題的可分解屬性,它由多個順序不依賴性或者區...

python平行計算 python平行計算

0.基礎並行 發 multiprocessing threading 1.concurrent 2.併發 asynico 3.ipython下的平行計算 使用ipyparallel庫的ipython提供了前所未有的能力,將科學python的探索能力與幾乎即時訪問多個計算核心相結合。系統可以直觀地與本...

平行計算模型

平行計算模型通常指從並行演算法 的設計和分析出發,將各種並行計算機 至少某一類並行計算機 的基本特徵抽象出來,形成乙個抽象的計算模型。從更廣的意義上說,平行計算模型為平行計算提供了硬體和軟體介面 在該介面的約定下,並行系統硬體設計者和軟體設計 者可以開發對並行性 的支援機制,從而提高系統的效能。有幾...