我們編寫程式時是否要刻意為雙核或者多核CPU進行優化?

時間 2021-05-07 14:15:53

1樓:Xi Yang

還是說我們仍然像往常一樣編寫這種工作交給作業系統?作業系統從來不會讓你的程式神奇地變成併發。

大概只有OpenMP能夠用很少的額外工作把程式變成併發,但那也是編譯時做的,而且和作業系統關係不大,而且比較侷限。

通常的做法是:分析程式有哪些同時執行的業務,按照業務本身劃分工作執行緒,使用執行緒間設施進行同步。

2樓:大頭小頭排排站

答案取決於程式本身是否有併發。單程序執行緒的,比如純運算程式,不優化那程式就在單乙個核上跑,就算放到多核上跑或者用多核多執行緒優化處理,表現也幾乎跟單核一樣。說是幾乎是因為在極端情況下,程式執行前的總計算負載非常高,多核作業系統會自動將程式分配到另乙個空閒核上執行,這時多核下表現出來會更快,但這其實是因為系統中其他計算負載拖累的緣故;有併發的,作業系統排程器會為各個程序、執行緒分配核,一般不需要人工優化就有速度提公升。

一般的「程式挪到多核上就會「自動」變快」的印象,那是因為一般的應用級程式如桌面程式都是是多執行緒或程序,只有極少數專業程式是序列計算密集型。

因此,準確的答案是加上乙個前提:在輕載系統中,無需多核優化;在過載系統中,如果程式本身可並行化,則多核優化有效,否則可能反而更慢。

3樓:visss

我就說說MATLAB的情況,因為實驗都在用matlab,不過題主估計不關心。

Matlab 平行計算工具箱及MDCE介紹

這裡寫的就蠻清楚的,但是一般的硬體執行細節是應該對coding的程式設計師透明的,對開發語言的程式設計師來說是不透明的。

用Python編寫程式BMI?

隨風 使用判斷語句來實現 BMI 的計算。BMI 指數 即身體質量指數,簡稱體質指數又稱體重,英文為 Body Mass Index,簡稱BMI 是用體重公斤數除以身高公尺數平方得出的數字 usr bin env python3print name input 請鍵入您的姓名 height eval...

Mac相比PC在哪些方面更適合編寫程式?

Xi Yang 瀉藥。我覺得macosx簡直太難用了,手感簡直一坨shi,我寧可用win也不用那玩意。實際上,我只在除錯mac程式的時候才捏著鼻子用。我平常用Debian,暫時湊合著用mate桌面。 閃屏我沒遇到。顯示卡崩潰我遇到了。關低亮度螢幕在閃現在還有。喚醒時間跟Mac根本不是乙個量級。我大概...

在D VA啟動自毀程式時,機甲會想什麼?

麵包bread 如果我是那個機甲,是有意識的智械 我會自行搭建自己 在趴墊 DVA是趴在機甲裡的吧 的相應位置 中間偏後 安裝乙個可伸縮的塑料棒棒,開啟後自動伸出,由我操控 在趴墊相應位置安裝伸縮圓環,效果類似那些審訊時椅子上的手銬內部兩邊安裝機械爪,拉力能直接把一塊布扯開把這一切的開關都整合在自爆...