999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于對象的隱式并行編程眾核體系結構研究

2013-07-25 02:28:38
計算機工程與設計 2013年2期
關鍵詞:程序

譚 海

(1.北京理工大學計算機學院,北京100081;2.東華理工大學信息工程學院,江西南昌330013;3.東華理工大學核技術應用教育部工程研究中心,江西南昌330013)

0 引言

目前芯片制造工藝已經具備百億晶體管的整合能力,且每過兩年繼續翻倍,出現功耗、片上網絡延遲和存儲帶寬等問題,如何利用芯片上集成的海量晶體管資源設計高性能處理器成為研究的熱點。采用多核結構在一定程度有效能夠減緩了上述問題,但是晶體管規模數變的過大時,出現過多的亞閾值漏電,導致供應電壓按比例下降,系統性能達不到按照摩爾定律所昭示的應有提升,反而產生大功耗問題,多核結構隨之遇到瓶頸,唯一的方法就是采用更多的較小單核 (眾核)來解決瓶頸問題。

當前的軟件結構可以在多核結構上得到較好的擴展,但如果超過八個處理器核,當前軟件結構的擴展能力將會很差[1]。Berkele認為未來的并行計算必須有利于傳統科學計算的并行化[2],范東睿研究員指出眾核的挑戰是供數受限于片外帶寬、并行系統難以高效率擴展、并行編程困難[3],提高應用程序開發產能同時獲得并行性能收益是多核大眾化并行計算研究的核心目標。微軟公司在2007年6月25日在美國西雅圖召開第一個以Many-Core為主題的Workshop,討論眾核軟件設計應如何開展,并于該年11月發表了THE MANYCORE SHIFT:Microsoft Parallel Computing Initiative Ushers Computing into the Next Era宣言,宣布轉入對眾核系統軟件的研究,基于眾核的軟件設計成為研究的熱點之一。

跟現有多核計算強調專門領域、需要專門知識的程序員不同,眾核計算關注通用平臺,基本涉及到所有應用領域,支持所有普通程序員進行眾核編程開發,即大眾化通用并行[4]。具體來說,多核計算關注高性能計算和服務計算領域、采用自底向上的硬件驅動方法、追求性能最大化目標;而眾核計算關注個人移動計算、采用自頂向下的應用驅動開發方法、追求最大化產能目標。

1 顯式并行編程模式及缺陷

國內外對多核的研究主要是面向計算密集型和數據密集型的專用計算領域,對處理器核的基本結構 (包括指令系統、粒度等)、處理器核之間的互連通信和同步機制 (共享內存、消息傳遞和數據并行等)、片上存儲器的組織形式(局部/全局、Cache/可尋址存儲器、SRAM/DRAM等)和多線程的基本機制等的研究[5]。由于一個時鐘周期內信號可傳輸的距離非常有限,處理器核不可能在指令執行期間就完成與其它處理器核的數據通信,不同核處理器之間的通信應該盡可能的采用異步機制且能容忍較長的延遲,不同專用并行機底層硬件和系統軟件之間差別較大,這些因素造成了目前的并行程序開發與現有的大眾化程序開發之間很大的不同,前者需要通曉底層硬件結構,編譯器和專用的并行開發語言的“專家級”程序員,程序開發和維護成本高,并行程序開發過程容易出錯,且編寫出來的程序不通用,只能在固定的計算機上去運行,程序移植性差,這類需要使用諸如MPI、Charm++等專門并行編程工具的模式稱之為顯式并行編程模式[6]。在顯式編程模式下,為了適應眾核硬件并行程序設計,得分別在算法、編程模型、編程語言、編譯器和操作系統等方面全套重新設計,這樣的變革將是巨大的,成本很大,對普通程序員要求太高,將嚴重影響眾核的推廣和使用,顯式并行編程模式是多核乃至眾核將來發展的瓶頸。

如何繼續使用而不是拋棄現有的大量程序 (軟件)代碼,如何并行現有串行代碼及提高程序執行效率;如何利用而不是拋棄現有的開發環境和工具等問題是通用眾核技術發展必須要解決的問題。

2 隱式并行編程模式

針對現有顯式編程模式成本大、容易出錯且不能兼容現有開發工具和程序的不足,我們提出了面向對象的基于對象粒度的隱式編程模式,在底層硬件和編譯技術的支撐下,兼容現有的串行程序開發模式、開發技術和開發工具,降低并行程序的開發成本和開發風險,并通過反編譯技術和軟件逆分析手段,實現對現有的串行二進制代碼并行化,使將來的眾核時代不至于拋棄現有的這些代碼成果。

相對于顯式并行編程模式,隱式并行編程模式盡量利用現有的開發工具、開發環境和程序開發語言等技術手段和成果,通過在計算機體系結構底層的硬件支撐進行專門設計、編譯器優化等技術手段,使在現有的開發環境和開發工具下開發出來的程序 (比如面向對象的程序)能夠無縫的運行在多核/眾核系統上,這樣開發的程序成本低、開發過程不容易出錯、程序移植性好,對程序員要求低,并能同時獲得較好的應用性能和產能目標。

目前軟件技術的高度發展,以C++和Java為代表的面向對象高級程序設計語言的產生,遵循人類思維方式,采用適合人類的處理問題的思考模式,以對象作為編程單元來編制程序,對象和對象之間相對獨立,對象具有封裝、繼承和多態性的特點,對象的方法和數據具有私有、公有和保護三種訪問模式,程序的代碼段主要由對象的方法調用組成,對象和對象之間通過消息機制完成通信。雖然在單核模式下,這些程序是串行執行的,對象的方法調用根據編制的代碼序列串行順序依次調用,顯然這些對象及其方法的調用是能夠并行進行。這些對象作為一種高度并行化的顆粒,能夠直接映射到眾核中的不同核去運行,通過處理器核間的通信鏈路來完成對象間的消息傳遞。現有的并 行 粒 度 有 循 環[7]、 函 數[8]、 代 碼 復 用[9]和 軟 件 流水[10-11],需要程序員進行專門處理,對程序員要求較高,不通用,且不能解決現有代碼的并行問題,屬于顯式編程模式,面向對象的基于對象并行粒度編程模式屬于隱式編程模式,易于實現,并行度高,能夠較好的解決現有代碼的并行問題,是眾核發展技術的出路。

3 基于對象的隱式并行編程模式研究

通過編譯器和底層硬件支撐,現有的大眾化程序員能夠利用現有的面向對象開發技術和開發工具輕松開發出對象級粒度的并行程序,達到應用程序開發產能和并行性能收益同步提高的大眾化并行計算研究的核心目標,完成對高級語言對象級并行粒度的隱式編程模式的研究;應用反編譯技術和軟件逆向分析,對現有二進制代碼 (面向對象程序所寫)中的對象級粒度進行識別和重構。

3.1 研究目標

通過研究,對編譯器進行改進,完成在二進制代碼中對同一對象的方法和變量的統一存放,并加以標注,片上處理器調度時根據該標注識別對象,完成核間數據通信和參數傳遞的研究;完成現有二進制代碼中對象粒度的識別和重構,實現串行程序并行化;構建硬件支撐模塊,根據程序并發度調度二進制代碼中標注的對象,并將這些對象調度到不同核上運行;分析并找出對象間所有可能存在的數據共享方式。

3.2 關鍵問題

為了解決上述關鍵問題,主要需完成下面幾個方面的研究:

(1)通過對現有面向對象編譯器的改進,完成將現有面向對象語言中對象間的消息機制改進為核間通信手段的研究,進行不同對象 (核間)方法執行時參數傳遞及結果返回機制的研究,并在二進制代碼中對對象加以標記,同一對象的不同方法放在一起 (正文段),同一對象的不同變量放置在一起 (數據段);

(2)由于對象存在封裝性,完成對象級并行粒度所有可能存在的共享數據及對其沖突類型進行評估;

(3)通過構建合適的底層硬件模塊,完成對二進制代碼中的對象及其方法的識別 (現在的串行二進制代碼,改造后的工具寫出來的程序中對象已有標注),增加處理器對象訪存指令,分析程序并發度,每個程序的對象被調度到3-8個核上運行,并實現完成片上計算時間和傳輸時間的錯開、調度管理。

4 體系結構設計

我們采用圖1所示的三維眾核體系結構,由一層處理核層和多層cache層組成,層間采用3D疊片技術互連,處理核層各核間采用2D Mesh互連,cache層各cache塊節點間采用半互連長互連線互連,處理核由L1 T-cache、I/D-cache和路由器組成,其中T-cache是L1級事務內存,該體系結構存儲架構采用如圖2所示結構,支持對象直接訪問。

每個面向對象程序根據程序規模大小,把它的對象分別調度到3-8個核上,完成對象到處理器核的分配,為了利于指令緩存和數據緩存的命中率和實施局部性原理,把該對象的方法存儲在離核較近的地址空間段中,由對象所分配的核負責該對象所有方法的運行 (有的對象的方法調用頻率高,調度時需要考慮到這些對象在不同核上的負載平衡),對象實例生成時,變量部分考慮存儲在離處理器核較近的內存空間段;程序運行時,先經由硬件支撐機構遍歷2-3遍代碼,分析其合適的并發度,完成程序中對象的識別后再分配對象于不同核,通過這些核并發執行這些對象。

該體系結構是一種可重構的異構多核系統,結點處理器核可以是異構的,可以由眾多的處理器核組成構成眾核系統,系統采用二級緩存系統,每個單核有自己的私有一級緩存L1,L1由指令緩存、數據緩存和事務緩存構成,數據緩存和事務緩存采用多端口Cache,且數據緩存和事務緩存之間能夠進行數據交換。具體的布局布線策略可采用斜布線和3D布線技術來實現,處理器核和存儲器DRAM間數據通信可以采用圖3所示的3D通路,處理器和存儲的組合示意圖如圖4所示。

5 眾核系統性能評價

并行程序在多個處理核執行時需要在不同核間交互數據和信息,多個程序在多個核同時并行執行時可以通過錯開片上計算時間和片上網絡通信時間,減少核間通信數據堵塞。由于眾核系統往往承載多個程序的運行,當處理器核數變多時,眾核系統的整體系統性能就能得到提升,具有同樣緩存和功耗,不同核數規模組成的系統性能比較如圖5所示 (左圖是大、中、小三個單核性能和規模的比較,右圖是在同晶體管數規模情況下,分別由少量大核、中量中核和多量小核組成的系統在單個、多個程序運行系統整體性能的對比),從圖中可以看出雖然小核晶體管規模只有大核的1/12,但是它的性能卻是大核的1/3,多個小核組成的系統整體吞吐量比少量大核組成的系統吞吐量要大得多,衡量眾核系統的性能不能只考慮某個應用程序的并行度,而應該考慮任務及應用程序級別的并行性。

圖5 不同核數的系統性能比較

6 結論和展望

提出的基于對象的隱式并行編程眾核體系結構,解決眾核時代繼續使用現有的二進制代碼、現有的開發技術和開發工具,減少并行程序開發成本和風險,提出的對象級并行粒度眾核軟件技術的研究,對眾核時代的程序并行化具有借鑒意義。

7 結束語

本文首先通過分析得出面向通用程序大眾化并行計算是將來眾核發展的方向,接著對其片上網絡、并行編程模式和存儲架構等關鍵技術進行深入研究,針對現有的顯式編程模式編程成本大、容易出錯且不能兼容現有開發工具和程序的不足,提出了面向對象的基于對象粒度的隱式編程模式,在底層硬件和編譯技術支撐下,兼容現有的串行程序開發模式、開發技術和開發工具,降低并行程序開發成本和開發風險,并通過反編譯和軟件逆分析技術手段,實現對現有的串行二進制代碼并行化,使將來的眾核時代不至于拋棄現有的這些代碼成果;并提出了相應的體系結構實現,這些關鍵技術解決了眾核技術發展的瓶頸。

[1]CAOYangjie,YANGHaibing,QIAN Depei,et al.On Adaptability of the runtime environment for emerging Multi-Core programming models[J].Journal of Xi'an Jiaotong University,2011,45(6):130-134(in Chinese).[曹仰杰,楊海兵,錢德沛,等.多核編程模型運行時環境的自適應性研究[J].西安交通大學學報,2011,45(6):130-134.]

[2]Kasanovic.The parallel computing laboratory at U.C.Berkeley:A research agenda based on the berkeley view[R].Berkeley:UCB,2008:1-25.

[3]LIU Duo, SHAO Zili, WANG Meng, et al.Optimal loop parallelization for maximizing iteration-level parallelism [J].IEEE Transactions on Parallel and Distributed Systems,2012,23(3):564-572.

[4]YANG Jixiang,TAN Guozhen,WANG Rongsheng.Some key issues and their research progress in multicore software[J].Acta Electronica Sinica,2010,38(9):2140-2146(in Chinese).[楊際祥,譚國真,王榮生.多核軟件的幾個關鍵問題及其研究進展 [J].電子學報,2010,38(9):2140-2146.]

[5]Hill M D,Marty M R.Amdahl's law in the multicore era [J].Computer,2008,41(7):33-38.

[6]W Hwu,S Ryoo,SZ Ueng,et al.Implicitly parallel programming models for thousand-core microprocessors[C]//Design Automation Conference.San Diego,CA,USA:ACM,2007:754-759.

[7]ZHANG Wangyuan,FU Xin,LI Tao,et al.An analysis of microarchitecture vulnerability to soft errors on simultaneous multithreaded architectures[C]//IEEE International Symposium on Performance Analysis of Systems & Software.San Jose,CA,USA:IEEE,2007:169-178.

[8]Balakrishnan S,Sohi G S.Program demultiplexing:Data-flow based speculative parallelization of methods in sequential programs[C]//Int'l Symp.Computer Architecture.Boston,MA,USA:IEEE,2006:302-313.

[9]Ben Lee.Performance evaluation of dynamic speculative multithreading with the cascadia architecture[J].IEEE Transactions on Parallel and Distributed Systems,2010,21(1):47-59.

[10]Bridges M J,Vachharajani N,ZHANGY,et al.Revisiting the sequential programming model for multi-core[C]//Proc 40th IEEE/ACM Int'l Symp.Microarchitecture.Chicago,IL,USA:IEEE,2007:69-84.

[11]Tian C,Feng M,Nagarajan V.Copy or discard execution model for speculative parallelization on multicores [C]//Proc 41st Int'l IEEE/ACM Symp.Microarchitecture.Lake Como,Italy:IEEE,2008:300-341.

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲成人一区二区三区| 黄色一级视频欧美| 88av在线| 永久免费AⅤ无码网站在线观看| 欧美日韩免费观看| 欧美性猛交xxxx乱大交极品| 91精品久久久无码中文字幕vr| 91小视频在线观看免费版高清| 99免费在线观看视频| 免费在线不卡视频| 91在线视频福利| 久久国产精品麻豆系列| 国产尤物jk自慰制服喷水| 青青青国产视频手机| 青青草原国产av福利网站| 丁香六月激情婷婷| 毛片免费视频| 中日韩一区二区三区中文免费视频 | 欧美成人第一页| www.国产福利| 午夜国产理论| 国产一二三区视频| 极品国产在线| 午夜电影在线观看国产1区| 日本人真淫视频一区二区三区| 久久精品一卡日本电影| 国产Av无码精品色午夜| 国产va在线观看免费| 一本大道东京热无码av| 成年人福利视频| 亚洲码一区二区三区| 一级毛片免费的| 国产精品白浆无码流出在线看| 欧美一区二区三区不卡免费| 久久精品只有这里有| 国产成人精品男人的天堂下载| 亚洲AV免费一区二区三区| 国产欧美精品一区aⅴ影院| 在线一级毛片| 免费观看无遮挡www的小视频| 91国内在线观看| 香蕉蕉亚亚洲aav综合| 亚洲最大综合网| 国产男人的天堂| 国产在线观看人成激情视频| 国产麻豆aⅴ精品无码| 在线99视频| 91人妻在线视频| 精品免费在线视频| 久久久久青草大香线综合精品| 国产成人AV综合久久| 一区二区午夜| 国产成人91精品| 亚洲三级a| 国产原创自拍不卡第一页| 日韩最新中文字幕| 99久久国产综合精品2020| 黄片在线永久| 欧美亚洲综合免费精品高清在线观看 | 无码专区国产精品第一页| 最新痴汉在线无码AV| 99热这里只有精品久久免费| 最新国产精品第1页| 亚洲天堂免费在线视频| 国产在线观看第二页| a毛片在线免费观看| 中文字幕人妻无码系列第三区| 国产毛片久久国产| 国产一区二区精品福利| 亚洲人成网站日本片| 午夜欧美理论2019理论| 日韩国产无码一区| 亚洲婷婷丁香| 天天综合亚洲| 国产精品吹潮在线观看中文| 99久久精品视香蕉蕉| 99久久人妻精品免费二区| 狠狠躁天天躁夜夜躁婷婷| 99视频在线免费看| aⅴ免费在线观看| 国产成人精品无码一区二| 国产91成人|