當前位置:
首頁 > 知識 > 走出並行計算的誤區,你應該在什麼時候用它?

走出並行計算的誤區,你應該在什麼時候用它?

走出並行計算的誤區,你應該在什麼時候用它?



AI 研習社按:本文為 Salesforce 知名數據科學家、機器學習工程師 Anmol Rajpurohit 對開發者的建議。對演算法進行並行處理,是業內常見的加速方式,但不少開發者對它的認識存在誤區。因此,Anmol Rajpurohit 用本文向大家說明,到底什麼時候才應該並行執行代碼、以及它的前提是什麼。

走出並行計算的誤區,你應該在什麼時候用它?



Anmol Rajpurohit


Anmol Rajpurohit :當一件任務能被分割為多個獨立處理(不必進行信息溝通與資源共享)的子任務,並行執行會是一個絕佳選擇。

即便這樣,效率,即如何高效地執行,仍是一個關鍵問題。這關乎能否真正實現並行化理論上的優點。


實際情況中,絕大多數代碼都有需要串列執行的部分。可並行的子任務,也需要某種形式的數據傳輸同步。因此,相比串列而言,預測並行化到底能否讓演算法運行地更快是一件十分困難的事。


相比按序處理任務所需要的計算周期,並行執行總是有額外代價——起碼包含把任務分割為子任務,以及把它們的結果整合起來。並行計算相比串列的性能,在很大程度上是由一個因素決定的:上述額外步驟耗費的時間,與並行執行節省的時間這兩者之間的差。


值得注意的是,並行化的帶來的額外步驟並不局限於代碼運行之時,還包括編寫並行計算代碼所需的額外時間,以及修復漏洞(並行 vs. 串列)。


有一項評估並行化表現的理論方法廣為人知——Amdahl』s law。它用下面的公式來度量並行執行子任務帶來的加速(多處理器) vs. 串列運行(單個處理器):

Slatency 是執行整個任務的理論加速;


s 是任務里受益於額外系統資源那部分的加速;


p 是受益於額外系統資源那部分所佔的執行時間的比例。


為認識到 Amdahl』s Law 的意義,請看下面的圖表。它展示了不同處理器核心數對應的理論加速。當然,這是基於所執行的任務所能達到的不同並行化程度。

走出並行計算的誤區,你應該在什麼時候用它?


有一件事要提醒諸位:並不是所有代碼都能被高效地並行。能在多處理器核心上實現理論上的加速水平,這樣的代碼可謂是鳳毛麟角。這是由於串列部分、內部信息交換成本等天然限制。通常,大型數據集才是並行執行的理想情形。但開發者不應該攝像並行化能帶來性能提升,而應該在搞並行化之前,先在任務的子集上對並行和串列誰優誰劣做一個比較。


viakdnuggets


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 唯物 的精彩文章:

深度神經網路中的對抗樣本與學習
如何用 TensorFlow 實現基於 LSTM 的文本分類
看了這篇再決定要不要學TensorFlow
什麼才算是真正的數據科學家?你算么?

TAG:唯物 |

您可能感興趣

為什麼我勸你別用使用蘆薈膠避免要這4個誤區,都是為了你的臉!
如果你皮膚不好,竟然還要這樣化妝,那你就陷入誤區了!
區塊鏈的誤區以及應用,憑它這麼火你也要了解一下
使用蘋果手機這麼久,這些操作誤區,你真的都知道嗎?
總感覺時間不夠用?可能是你陷入了這些誤區
想要自己氣色好,那就先從唇妝開始,在畫的時候這些誤區要避免
為什麼你游泳比別人慢?可能你需要走出以下誤區
減肥一直沒有效果?如果你陷入了這些誤區,再怎麼減也是浪費時間
定製鑽戒的「誤區」,適不適合你,你該這麼看
為什麼你的眼妝又臟又不好看?這些化妝誤區你是不是還在踩
胸肌訓練沒有效果?那是因為你方法不正確,請走出這些誤區
為什麼你會越穿越丑?可能是入了這些時髦誤區!
減肥真的很難嗎?或許是你走進了誤區,避開它就對了
健康減肥,就要走出這幾種誤區,值得你去知道
蘆薈膠你真的會使用嗎?不要再進這些誤區了,會讓皮膚變得更差
想要養好魚的你,是否也經歷過這樣的誤區……
閃電是什麼?你可能對閃電還是不了解!我們甚至存在很多誤區
塗口紅時,盡量要避免這3個「誤區」!我不說,你未必會知道!
大碼的衣服卻穿上身不顯瘦?也許你中了這些誤區,現在改還不算晚
在塗防晒的時候一定要避開這三個誤區,怪不得一點作用也沒有!