并行計算有什么好的?
硬件的性能無法永遠提升,當前的趨勢實際上趨于降低功耗。那么推廣并行技術這個靈丹妙藥又有什么好處呢?我們已經知道適當的亂序CPU是必要的,因為人們需要合理的性能,并且亂序執行已被證明比順序執行效率更高。
推崇所謂的“并行”極大地浪費了大家的時間。“并行更高效”的高大上理念純粹是扯淡。大容量緩存可以提高效率。在一些沒有附帶緩存的微內核上搞并行毫無意義,除非是針對大量的規則運算(比如圖形處理)。
沒人會回到從前了。那些復雜的亂序運行內核不會消失。擴展不會一直進行下去,人們需要的是移動性,因此那些主張擴展至上百內核的都是瘋子,不要鳥他們。
他們究竟是如何幻想那些神奇的并行算法會有用武之地的呢?
并行只有對圖形計算和服務器有意義,而在這些領域我們已經大量應用并行了。把并行推廣到其他的領域沒有意義。
所以說忘記并行吧。它不會到來的。4個左右的內核對終端用戶來說沒有問題,在移動領域里,不大幅增加能耗的情況下,你沒辦法再塞進更多的核。任何一個理智的人都不會為了要塞入更多的內核而閹割內核以降低其大小和性能,閹割內核的唯一理由是你想進一步降低功耗,因此你還是不會得到大量的核。
所以爭論是否要講究程序的并行性根本就是謬誤,其前提條件都是錯誤的。它只不過是一個早該過時的時髦術語罷了。
并行程序在上面提到的一些地方是有用的,并且已經大量地運用了,比如在服務器領域,人們已經并行很多年了。
在其他的領域,并行不是一定必須的,即便是在將來的一些未知領域也是如此,因為你做不到。假如你要做低功耗通用計算機視覺,我基本可以保證你不會使用通用圖形處理器(GP CPU)。你甚至不會用圖形處理器,因為其功耗也太高了。你大概會用特殊的硬件,很可能是基于某些神經網絡的硬件。
放棄吧。“并行就是未來”的說法就是一片浮云。