{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

如何評價Linux之父Linus認為并行計算基本上就是浪費大家的時間?

ShihiraShihira 回答0 收藏1
收藏問題

5條回答

liangzai_cool

liangzai_cool

回答于2022-06-28 11:06

原文:

并行計算有什么好的?

硬件的性能無法永遠提升,當前的趨勢實際上趨于降低功耗。那么推廣并行技術這個靈丹妙藥又有什么好處呢?我們已經知道適當的亂序CPU是必要的,因為人們需要合理的性能,并且亂序執行已被證明比順序執行效率更高。

推崇所謂的“并行”極大地浪費了大家的時間。“并行更高效”的高大上理念純粹是扯淡。大容量緩存可以提高效率。在一些沒有附帶緩存的微內核上搞并行毫無意義,除非是針對大量的規則運算(比如圖形處理)。

沒人會回到從前了。那些復雜的亂序運行內核不會消失。擴展不會一直進行下去,人們需要的是移動性,因此那些主張擴展至上百內核的都是瘋子,不要鳥他們。

他們究竟是如何幻想那些神奇的并行算法會有用武之地的呢?

并行只有對圖形計算和服務器有意義,而在這些領域我們已經大量應用并行了。把并行推廣到其他的領域沒有意義。

所以說忘記并行吧。它不會到來的。4個左右的內核對終端用戶來說沒有問題,在移動領域里,不大幅增加能耗的情況下,你沒辦法再塞進更多的核。任何一個理智的人都不會為了要塞入更多的內核而閹割內核以降低其大小和性能,閹割內核的唯一理由是你想進一步降低功耗,因此你還是不會得到大量的核。

所以爭論是否要講究程序的并行性根本就是謬誤,其前提條件都是錯誤的。它只不過是一個早該過時的時髦術語罷了。

并行程序在上面提到的一些地方是有用的,并且已經大量地運用了,比如在服務器領域,人們已經并行很多年了。

在其他的領域,并行不是一定必須的,即便是在將來的一些未知領域也是如此,因為你做不到。假如你要做低功耗通用計算機視覺,我基本可以保證你不會使用通用圖形處理器(GP CPU)。你甚至不會用圖形處理器,因為其功耗也太高了。你大概會用特殊的硬件,很可能是基于某些神經網絡的硬件。

放棄吧。“并行就是未來”的說法就是一片浮云。

評論0 贊同0
  •  加載中...
wawor4827

wawor4827

回答于2022-06-28 11:06

這又是一個老帖子了, 是Linus在14年底回復關于"并行"優化的時寫的.原文別的答案已附,英文原文可自行百度。

6年后的今天, 現實發展再一次證明Linus此結論的無比正確. 需要注意, 原上下文是在討論kernel(內核)編程, 因此只在講單機CPU的"并行", 不是指多機"并行".

LInus原貼重要觀點是:

1. CPU是通用復雜計算, 發展方向是"低功耗". 依賴強核(complex core)和大緩存.

Linux是通用OS, 面向通用架構CPU編程. kernel是Linux系統的核心, 要盡量滿足通用CPU計算. 因此Linus只接受通用開發方向的改進是符合其定位的. 對于"低功耗"的發展預測也是非常精準, 全球基于ARM和兩巨頭的移動CPU出貨量早就超過了桌面/服務器級出貨量. 從目前CPU的主要設計構造看, 高端CPU越來越強化復雜指令和單核處理能力, 同時增大緩存. 從目前英特爾i7系列看, 仍然在上面堆指令, 高速緩存達到16M, 是符合預測的.

2. 并行計算不通用, 依賴小核(weak cores)和很多核. 甚至在未來同樣會遇到功耗問題.

從GPU發展看, 現在小核數和功耗年年提升, 一個主流GPU GTX 1660功耗450W以上, 遠高于與其常搭配CPU i5的65W功耗. 同時近年的深度學習在GPU而不是CPU的應用也驗證了并行計算的不通用性和能耗過高問題.

3. 各種鄙視吐槽話.

是全文精華, 建議對照原文學習.

評論0 贊同0
  •  加載中...
Markxu

Markxu

回答于2022-06-28 11:06

并行計算早已被證明是可行的計算架構,否則全球幾百臺超級計算機是拿來當玩具玩兒的嗎?

采用Hadoop/MapReduce計算架構的大型互聯網應用在全球都得到了廣泛應用。沒有并行計算,淘寶在雙十一能處理那么多的并發訂單嗎?

不理解Linus這句話的意思。

評論0 贊同0
  •  加載中...
Fourierr

Fourierr

回答于2022-06-28 11:06

這就是LINUS不懂了,不懂并行計算的威力,那是因為他沒有做深度學習。深度學習訓練計算量很大,就是人們說的算力,需要大量計算,比如做imagenet競賽,百萬級圖片,一旦訓練起來就沒完沒了,用cpu訓練估計要幾個月,如果用gpu并行計算,用幾天就好了。gpu做深度學習訓練速度是cpu的十倍以上,平時要半天訓練現在一個小時就好了。而目前最大的bert模型,沒有大量gpu還訓練不了。所以linus說的浪費時間可能是在操作系統運行上肯定最快的cpu就夠了,但是深度學習是不行的。

評論0 贊同0
  •  加載中...
yacheng

yacheng

回答于2022-06-28 11:06

因為人實際上是單線程處理多事物的。舉個例子,開車超車,目標車道前后有2輛車,你要插到當中,插之前你看的是2扯間距夠不夠,打方向盤的時候看后視鏡確認候車沒有加速前沖不讓你超,車身一半進線時,你看前方防止前車剎車。每一個時候其實只是干一件事,其他事只是放著慣性思維覺得該是慣性運動。

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<