將平行計算納入演算法競賽,是否合適?

時間 2021-05-29 22:23:01

1樓:rsa

反對「並行就是簡單粗暴地加快程式速度」的觀點。

如果去過WC2017就會知道,有的演算法直接做是不可並行的。

比如給個數排序,有台機器(分別是和數量級),用快速排序/歸併排序之類的演算法不好並行。假設這些數兩兩不同,從這些數中隨機選個(不需要很大)排序,再均勻選出個數,把個數均勻分成段,再讓每個機器對每一段進行排序,最後合併即可,這樣就能做到的期望複雜度。

至少我認為並行演算法思想是很巧妙的。

一般的演算法競賽,都是優化運算進行的次數,而並行演算法允許在增加總運算次數的情況下減少執行時間,無論在理論上還是實踐上,都有相當好的應用。

至於難度,個人認為並行演算法難度是相當大的,不少OI選手(包括我)都吃不消。所以雖然個人支援並行演算法引入演算法競賽,但不建議放在普及性的比賽(如NOIP)中。

2樓:

曾經YY過乙個場景:面對乙個問題,你有兩套方案來實現,他們適合不同的資料。但是你沒法預估他們分別適合哪個方案,或者預估代價太大。

這時候,並行跑兩個方案,其中乙個執行結束就完工了。

3樓:

有新的有意義的東西引入,個人認為還是有好處的。

不過很難在短時間內對原有的演算法競賽模式有比較大的影響。經典的演算法競賽至少在內容上和世界主流還是差距有些大的。。

你要看,現在的一般向演算法競賽連sse都不讓用。。

另乙個問題是,平行計算相關的演算法和普通的演算法競賽差距也有些大。。

最後,學習成本也是個問題。。不過這點應該還好。。

4樓:莫濤

這是今年Google code jam Distributed的例題Frequently Asked Questions我覺得有創新總是好的,而且現在平行計算這麼火。

等這個Distributed Code Jam比完了再來補充感受吧,當然前提是我得進得了~

平行計算主機配置?

搞CUDA平行計算就不要考慮一般的遊戲卡 包括titan x 基本都是閹割了流處理器和雙精度浮點運算,畢竟遊戲用不上太高的雙精度。而計算就完全不一樣了,要知道單精度浮點的十進位制有效數字只有7位,而雙精度有16位。比如單精度運算下pi 3.141593,後面都被截斷了,而雙精度可以精確到3.1415...

abinitio 或者dft平行計算 買AMD threadripper 還是買英特爾呢?

已登出 第一性原理計算在現階段毫無疑問該選intel,穩定 省電 單核效率高,和系統 編譯器也沒各種稀奇古怪的相容性問題。gpu是有幾個軟體支援了,但是目前看到的實測結果並不像經典分子動力學或相場動力學動輒幾十倍加速比那樣鼓舞人心,或者說第一性原理計算雖然計算量大,但問題的並行度可能並不高,目前階段...

平行計算與序列計算有什麼區別?

楚天樂 什麼是平行計算平行計算的任務是找出程式中沒有依賴關係的的部分,讓他們同時執行,以縮短程式執行時間。過程將任務劃分成塊,分片分發給處理器,等待處理結果,彙總。效能我們假設乙個程式中有f 0到1之間 是沒有依賴關係的可以並行執行的,在假設我們可以n個核心去執行他,另外假設序列執行是要時間t。首先...