多核時(shí)代嵌入式編程和應(yīng)用之出路
掃描二維碼
隨時(shí)隨地手機(jī)看文章
2007年7月中旬,英特爾公司在大連召開(kāi)“2007英特爾中國(guó)多核技術(shù)學(xué)術(shù)論壇”,來(lái)自全國(guó)40多所高校的近百名教師濟(jì)濟(jì)一堂,探討多核時(shí)代的軟件編程方法和應(yīng)用方案。
摩爾定律=晶體管預(yù)算+最低功耗+最低成本
Intel副總裁兼中國(guó)產(chǎn)品開(kāi)發(fā)總經(jīng)理王文漢博士指出,摩爾定律也隨著時(shí)代的變遷而變換著內(nèi)容。1965年誕生的摩爾定律預(yù)測(cè)每?jī)赡昃w管的密度翻一番。最早是在芯片上晶體管密度提高;后來(lái)變?yōu)樗俣忍嵘?,即CPU的主頻越來(lái)越快;此時(shí)又帶來(lái)了散熱問(wèn)題,因此現(xiàn)在追求能耗的降低。既追求密度、又追求功耗和成本的結(jié)果,就誕生了多核。
Intel處理器目前的主頻不是追求快,但密度要高,因此未來(lái)1~2年多核將獨(dú)領(lǐng)風(fēng)騷,到2008年,10個(gè)Intel處理器中有8個(gè)是多核。今后3~5年,Intel將沒(méi)有單核。
不過(guò),過(guò)去CPU沒(méi)有多核,現(xiàn)在多核編程與單核之間的落差非常大,所以市場(chǎng)上對(duì)多核軟件的需要產(chǎn)生了迫切要求,同時(shí)為軟件開(kāi)發(fā)人員帶來(lái)了機(jī)會(huì)。在多核軟件領(lǐng)域,沒(méi)有第一也沒(méi)有最后,全世界都站在同一條起跑線上,希望中國(guó)的軟件工程師抓住此機(jī)會(huì)。
多核環(huán)境下軟件的特點(diǎn)是:開(kāi)源,虛擬化,圖形化,并行性。據(jù)Gartner Dataquest于2007年2月公布的報(bào)告,今后5年開(kāi)源軟件的年增長(zhǎng)率將達(dá)到24.3%。過(guò)去采用分時(shí)化,現(xiàn)在是虛擬化:一個(gè)高速處理器可以虛擬成多個(gè)計(jì)算單元;同樣,多核也可虛擬成一個(gè)高速處理器?,F(xiàn)在的Silicon Life(硅時(shí)代)非常注重有好的圖形效果,例如google圖形搜索,游戲中3D場(chǎng)景出現(xiàn),因此下一代軟件將在圖形上下足功夫。涉及到未來(lái)多核的應(yīng)用方式,如何進(jìn)行并行化編程,如何利用多核的龐大的計(jì)算功能?這是一個(gè)巨大的挑戰(zhàn)。
圖1 多核環(huán)境下軟件的特點(diǎn)
多核編程的挑戰(zhàn)
多核的產(chǎn)生是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)發(fā)展之必然,這也帶來(lái)了設(shè)計(jì)思想的根本轉(zhuǎn)變。
武漢大學(xué)電子信息學(xué)院楊劍鋒副教授認(rèn)為,多核的困難之處在于答案是無(wú)解的。他以一個(gè)小學(xué)生的奧數(shù)題進(jìn)行舉例:在一個(gè)三角形中放入小三角形,再放入一條線,讓同學(xué)們數(shù)里面有多少三角形,結(jié)果每個(gè)同學(xué)數(shù)出的結(jié)果是不同的。他又把同學(xué)們分成幾人一組,以團(tuán)隊(duì)的形式數(shù),結(jié)果每組正確率大大上升。楊教授的結(jié)論是:多核會(huì)產(chǎn)生時(shí)間線程的不同,因此多核、多線程就像解三角形這類(lèi)數(shù)學(xué)題,解題時(shí)要考慮到各種情形,尤其困難之處在于每個(gè)程序員的方法別人是難以模仿和檢驗(yàn)的。通過(guò)多人的集體智慧,成功率可大大提高。
浙江大學(xué)計(jì)算機(jī)學(xué)院的陳天洲教授指出,開(kāi)發(fā)多核軟件需要市場(chǎng)上出現(xiàn)多核編譯器。他說(shuō):“從單核到多核,移植是個(gè)大問(wèn)題,尤其是軟件架構(gòu)的移植。在單核時(shí)代,出現(xiàn)了操作系統(tǒng),使人們看不見(jiàn)后面的硬件。目前能否有編譯器,使寫(xiě)軟件的人,不論是寫(xiě)Java還是C++,可利用編譯器自動(dòng)把任務(wù)分配到多核上。這是個(gè)挑戰(zhàn)?!逼渌淌谘a(bǔ)充道,至于同構(gòu)還是異構(gòu)的,雙核還是32核的,任務(wù)是如何分配的,應(yīng)該是后臺(tái)編譯器的工作。就像學(xué)開(kāi)車(chē)、開(kāi)飛機(jī),沒(méi)必要先了解如何造汽車(chē)、造飛機(jī)。
英特爾亞太研發(fā)公司戰(zhàn)略拓展經(jīng)理芮斌舉了另一個(gè)多核軟件的例子,有人問(wèn)他:多核就像十月懷胎,肚子里的孩子如何能讓十個(gè)媽媽每人懷一個(gè)月?面對(duì)SMP(對(duì)稱(chēng)多處理),有的應(yīng)用只能串行,不能并行。芮斌的答案是,多核的任務(wù)是讓十個(gè)媽媽?xiě)咽畟€(gè)孩子。
可見(jiàn),多核必須要找到用武之地,如果用不好,不僅浪費(fèi)資源,而且更加耗電。浙大程教授指出:異構(gòu)核適合比較密集的應(yīng)用,例如多媒體視頻處理,壓縮/解壓縮,有個(gè)組合,一個(gè)主做,另一個(gè)輔助。不過(guò),這當(dāng)然帶來(lái)了很多的麻煩,包括軟件設(shè)計(jì)上的。
多核在嵌入式的應(yīng)用
“這些年來(lái),嵌入式技術(shù)方面總是滯后于PC;但現(xiàn)在差距在縮小。” Intel中國(guó)嵌入式產(chǎn)品事業(yè)部技術(shù)市場(chǎng)經(jīng)理王禾介紹道。由于Intel全面引入了多核,因此,Intel在努力尋找需要高性能、超低功耗的領(lǐng)域。
在商業(yè)上的應(yīng)用,例如機(jī)場(chǎng),現(xiàn)在大都是電子客票,每臺(tái)機(jī)器都是嵌入式計(jì)算機(jī)。美國(guó)賣(mài)CD、DVD的商店,有一個(gè)大型的計(jì)算機(jī),有大型的存儲(chǔ)器和眾多觸摸屏,顧客可根據(jù)需要選擇不同的CD與DVD節(jié)目來(lái)試聽(tīng)。777飛機(jī)上每個(gè)座位上都有一臺(tái)VoD(視頻點(diǎn)播)電視。工業(yè)自動(dòng)化上的大型流水線。
無(wú)風(fēng)扇也是多核的優(yōu)勢(shì),特別適合沒(méi)有噪音的場(chǎng)合。在醫(yī)療領(lǐng)域中,手術(shù)設(shè)備可采用多核處理器。一些人機(jī)交互產(chǎn)品也需要沒(méi)有噪音的多核產(chǎn)品。
在安全監(jiān)控系統(tǒng)中,傳統(tǒng)模式是“攝像機(jī)+錄像機(jī)”,采用多核后,不僅一臺(tái)機(jī)器可以錄下內(nèi)容,還能監(jiān)控,同時(shí)完成存儲(chǔ),并可很快被調(diào)出,而且還是多路。
在物流上,可以實(shí)現(xiàn)豐富的人機(jī)交換。例如連鎖商場(chǎng)連接至整個(gè)大型庫(kù)房網(wǎng)絡(luò),這里如果缺貨,哪個(gè)州/省、哪家商店有立刻可以查到;另外,如何加密保護(hù)自己商店的內(nèi)容也是下一步的課題。
由于多核是典型的高性能、低功耗,也很適合野外應(yīng)用,例如地質(zhì)儀器。
當(dāng)然,嵌入式不是原始技術(shù),是綜合技術(shù)。在應(yīng)用之后,要讓人感覺(jué)不到多核。