A. 計算機體系結構的技術革新
計算機體系結構以圖靈機理論為基礎,屬於馮·諾依曼體系結構。本質上,圖靈機理論和馮·諾依曼體系結構是一維串列的,而多核處理器則屬於分布式離散的並行結構,需要解決二者的不匹配問題。
首先,串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題。圖靈機模型意味著串列的編程模型。串列程序很難利用物理上分布實現的多個處理器核獲得性能加速.與此同時,並行編程模型並沒有獲得很好的推廣,僅僅局限在科學計算等有限的領域.研究者應該尋求合適的機制來實現串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題或縮小二者之間的差距,解決「並行程序編程困難,串列程序加速小」的問題。
在支持多線程並行應用方面,未來多核處理器應該從如下兩個方向加以考慮。第一是引入新的能夠更好的能夠表示並行性的編程模型。由於新的編程模型支持編程者明確表示程序的並行性,因此可以極大的提升性能。比如Cell處理器提供不同的編程模型用於支持不同的應用。其難點在於如何有效推廣該編程模型以及如何解決兼容性的問題。第二類方向是提供更好的硬體支持以減少並行編程的復雜性。並行程序往往需要利用鎖機制實現對臨界資源的同步、互斥操作,編程者必須慎重確定加鎖的位置,因為保守的加鎖策略限制了程序的性能,而精確的加鎖策略大大增加了編程的復雜度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision機制允許在沒有沖突的情況下忽略程序執行的鎖操作,因而在降低編程復雜度的同時兼顧了並行程序執行的性能。這樣的機制使得編程者集中精力考慮程序的正確性問題,而無須過多地考慮程序的執行性能。更激進的,(TCC)機制以多個訪存操作(Transaction)為單位考慮數據一致性問題,進一步簡化了並行編程的復雜度。
主流的商業多核處理器主要針對並行應用,如何利用多核加速串列程序仍然是一個值得關注的問題。其關鍵技術在於利用軟體或硬體自動地從串新程序中派生出能夠在多核處理器上並行執行的代碼或線程。多核加速串列程序主要有三種方法,包括並行編譯器、推測多線程以及基於線程的預取機制等。在傳統並行編譯中,編譯器需要花費很大的精力來保證擬劃分線程之間不存在數據依賴關系。編譯時存在大量模糊依賴,尤其是在允許使用指針(如C程序)的情況下,編譯器不得不採用保守策略來保證程序執行的正確性。這大大限制了串列程序可以挖掘的並發程度,也決定了並行編譯器只能在狹窄范圍使用。為解決這些問題,人們提出推測多線程以及基於線程的預取機制等。然而,從這種概念提出到現在為止,這個方向的研究大部分局限於學術界,僅有個別商業化處理器應用了這種技術,並且僅僅局限於特殊的應用領域。我們認為動態優化技術和推測多線程(包括基於線程的預取機制)的結合是未來的可能發展趨勢。
馮·諾依曼體系結構的一維地址空間和多核處理器的多維訪存層次的匹配問題。本質上,馮·諾依曼體系結構採用了一維地址空間。由於不均勻的數據訪問延遲和同一數據在多個處理器核上的不同拷貝導致了數據一致性問題。該領域的研究分為兩大類:一類研究主要是引入新的訪存層次。新的訪存層次可能採用一維分布式實現方式。典型的例子是增加分布式統一編址的寄存器網路。全局統一編址的特性避免了數據一致性地考慮。同時,相比於傳統的大容量cache訪問,寄存器又能提供更快的訪問速度。TRIPS和RAW都有實現了類似得寄存器網路。另外,新的訪存層次也可以是私有的形式。比如每個處理器和都有自己私有的訪存空間。其好處是更好的劃分了數據存儲空間,已洗局部私有數據沒有必要考慮數據一致性問題。比如Cell處理器為每個SPE核設置了私有的數據緩沖區。另一類研究主要涉及研製新的cache一致性協議。其重要趨勢是放鬆正確性和性能的關系。比如推測Cache協議在數據一致性未得到確認之前就推測執行相關指令,從而減少了長遲訪存操作對流水線的影響。此外,TokenCoherence和TCC也採用了類似的思想。程序的多樣性和單一的體系結構的匹配問題。未來的應用展現出多樣性的特點。一方面,處理器的評估不僅僅局限於性能,也包括可靠性,安全性等其他指標。另一方面,即便考慮僅僅追求性能的提高,不同的應用程序也蘊含了不同層次的並行性。應用的多樣性驅使未來的處理器具有可配置、靈活的體系結構。TRIPS在這方面作了富有成效的探索,比如其處理器核和片上存儲系統均有可配置的能力,從而使得TRIPS能夠同時挖掘指令級並行性、數據級並行性及指令級並行性。
多核和Cell等新型處理結構的出現不僅是處理器架構歷史上具有里程碑式的事件,對傳統以來的計算模式和計算機體系架構也是一種顛覆
2005年,一系列具有深遠影響的計算機體系結構被曝光,有可能為未來十年的計算機體系結構奠定根本性的基礎,至少為處理器乃至整個計算機體系結構做出了象徵性指引。隨著計算密度的提高,處理器和計算機性能的衡量標准和方式在發生變化,從應用的角度講,講究移動和偏向性能兩者已經找到了最令人滿意的結合點,並且有可能引爆手持設備的急劇膨脹。盡管現在手持設備也相對普及,在計算能力、可擴展性以及能耗上,完全起到了一台手持設備應該具備的作用;另一方面,講究性能的伺服器端和桌面端,開始考慮減少電力消耗趕上節約型社會的大潮流。
Cell本身適應這種變化,同樣也是它自己創造了這種變化。因而從它開始就強調了不一樣的設計風格,除了能夠很好地進行多倍擴展外,處理器內部的SPU(SynergisticProcessorUnit協同處理單元)具有很好的擴展性,因而可以同時面對通用和專用的處理,實現處理資源的靈活重構。也就意味著,通過適當的軟體控制,Cell能應付多種類型的處理任務,同時還能夠精簡設計的復雜。
B. 計算機專業分類
目前我國計算機專業主要分為三大類:計算機基礎專業、與理工科交叉的計算機專業、與文科藝術類交叉的計算機專業。
1. 計算機基礎專業
專業要求與就業方向:這些專業不但要求學生掌握計算機基本理論和應用開發技術,具有一定的理論基礎,同時又要求學生具有較強的實際動手能力。學生畢業後能在企事業單位、政府部門從事計算機應用以及計算機網路系統的開發、維護等工作。
2. 與理工科交叉的計算機專業
與理工科交叉而衍生的計算機專業很多,如數學與應用數學專業、自動化專業、信息與計算科學專業、通信工程專業、電子信息工程專業、計算機應用與維護專業等。
1)數學與應用數學專業:
專業要求與就業方向:數學與應用數學是計算機專業的基礎和上升的平台,是與計算機科學與技術聯系最為緊密的專業之一。該專業就業面相對於計算機科學與技術專業來說寬得多,不但適用於IT 領域,也適用於數學領域。
2)自動化專業:
專業要求與就業方向:自動化專業是一個歸並了多個自動控制領域專業的寬口徑專業,要求學生掌握自動控制的基本理論,並立足信息系統和信息網路的控制這一新興應用領域制定專業課程體系,是工業製造業的核心專業。自動化專業的畢業生具有很強的就業基礎和優勢。
3)信息與計算科學專業:
專業要求與就業方向:這是一個由信息科學、計算數學、運籌與控制科學等交叉滲透而形成的專業,就業面涉及到教學、商業、網路開發、軟體設計等各個方面,就業率高達95%以上。
4)通信工程專業:
專業要求與就業方向:通信工程專業要求學生掌握通信基礎理論和基本基礎,掌握微波、無線電、多媒體等通信技術,以及電子和計算機技術,在信息時代有著極佳的就業優勢。
5)電子信息工程專業:
專業要求與就業方向:電子信息工程專業是寬口徑專業,主要培養信息技術、電子工程、網路系統集成等領域的高級IT 人才,畢業生可從事電子設備、信息系統和通信系統的研究、設計、製造、應用和開發工作。
(2)並行編譯的概念擴展閱讀:
畢業生主要面向交通系統各單位、交通信息化與電子政務建設與應用部門、各類計算機專業化公司、廣告設計製作公司、汽車營銷技術服務等從事IT行業工作。
WEB應用程序設計專業
畢業後能夠從事網站應用程序開發、網站維護、網頁製作、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、資料庫管理與應用、非IT企事業單位信息化。
可視化程序設計專業
畢業後能夠從事軟體企業桌面應用開發、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、資料庫管理與應用開發等工作。
資料庫管理專業
畢業後能夠從事企、事業單位資料庫管理、軟體開發、專業資料庫應用設計與開發、資料庫的應用與開發、信息管理系統開發、企、事業單位網路管理、軟體銷售等工作。
多媒體應用專業
畢業後能夠從事計算機美工、動畫製作、影視編輯與製作、廣告設計與製作、多媒體綜合應用開發、多媒體課件製作等工作。
移動應用開發專業
畢業後能夠從事移動設備應用開發、嵌入式應用開發、移動網站開發、軟體生產企業編碼、軟體測試、系統支持、軟體銷售、企、事業單位信息管理、辦公自動化集成等工作。
電子政務軟體專業
能夠勝任基層政府部門、事業單位數字化政務管理系統的設計、維護與信息管理、辦公自動化集成、辦公室文員等工作。
軟體測試專業
畢業後能夠從事軟體測試、軟體編碼、IT企事業單位系統支持、非IT企事業單位信息化軟體銷售等工作。
物流信息技術專業
畢業後能夠勝任現代物流業信息管理,能在企事業單位從事物流系統設計、供應鏈管理、倉儲管理以及運輸等管理工作。
物流管理專業
畢業後能夠勝任全省各級企事業單位物流系統設計、供應鏈管理、倉儲管理以及運輸等管理工作等工作。
網路系統管理專業
畢業後能夠從事政府管理部門、經貿、金融、郵電、電子、學校、交通、社區以及應用計算機網路的有關行業,從事計算機網路系統的設計、維護、管理、從事網站開發與應用、網路安全管理、計算機軟硬體調試、安裝、計算機及網路產品營銷等工作。
計算機游戲專業
畢業後能夠從事網路游戲美術,網路游戲動漫設計,游戲概念/故事情節設計,網路游戲3D設計,網路游戲人物設計,網路游戲環境設計,網路游戲皮膚/紋理設計,網路游戲圖形開發,網路游戲測試,網路游戲音頻開發,游戲客戶端開發,游戲伺服器開發,游戲引擎開發,手機游戲策劃,手機游戲開發,手機游戲程序開發,手機游戲美工,手機游戲測試等工作。
計算機圖形/圖像製作專業
畢業後能夠從事廣告企業平面的設計與製作、網路企業網頁製作、企事業單位職員等工作。
目前,計算機專業在國內的高等院校中,以理工科的實力較強;以文科、綜合性高等院校為補充,基本上每所高等院校都設有這樣的專業;或者有這樣的專業人才。
C. 什麼是計算機學科包括哪兩個方面其核心概念有哪些
計算機學科即計算機科學與技術,是研究計算機的設計與製造和利用計算機進行信息獲取、表示、存儲、處理、控制等的理論、原則、方法和技術的學科。方法論是對計算機領域認識和實踐過程中的一般方法及其性質特點、內在聯系和變化規律進行系統研究的理論總結。
包括科學和技術2方面。計算機科學側重於研究現象揭示規律。計算機技術則側重於研製計算機和研究使用計算機進行處理的方法和技術手段。
計算機學科方法論是對計算機領域認識和實踐過程中的一般方法及其性質特點、內在聯系和變化規律進行系統研究的理論總結。據研究,其主要內容包括3個形態:
形態
3個形態:抽象過程、理論總結過程、設計過程。
計算機學科:計算機科學與技術屬於工學門類里的一級學科,分為三個二級學科:計算機應用,計算機系統結構,計算機軟體與理論,每個二級學科下面又分若干研究方向:
計算機應用
1. 人工智慧;2. 智能控制機器人;3. 計算機視覺、語音及多媒體信息處理;4. 人工智慧、多媒體技術;5. 計算機語言學、機器翻譯及自然語言理解;6. 計算機圖形學及可視化技術;7. 計算機及VLSI設計自動化。8. 大規模集成 電路與微電子系統計算機輔助設計、微電子學新工藝新器件和新結構集成電路及其物理基礎等。9. 計算機網路技術及應用10. 信息安全技術及應用11. 資料庫技術、數據倉庫技術及應用;12. 並行計算13. 計算機科學理論14. 計算機應用支撐技術;15. 計算機在信息產業中的應用;16. 計算機在製造產業中的應用;17. 各個領域中計算機應用軟體的開發技術;18. 計算機集成技術和分布式計算環境 ;19. 仿腦計算理論與仿腦計算機 ;20. 智能信息處理 ;21. 數據和知識管理;22. Web技術軟體工程和環境。23. CIMS及其它先進製造技術24. 網路多媒體 25. 操作系統 26. 互聯網路下的協同工作環境;27. 實與多媒體技術;28. 工程與過程工程;29. 互聯網路體系結構;30. 信息安全技術;31. 容錯計算技術;32. 計算機應用工程化;33. 虛擬環境方面;34. IPv6協議的中間件和軟體應用;35. 實與多媒體技術;36. 微處理的開發應用研究:嵌入式設備(醫療設備(治癌儀、熱療儀等)、加密機(E1、DDN)等)的開發;研製類比推理部件(可作為獨立的類比問題求解系統,也可以嵌入其它人工智慧系統)。37. 遠程教學;38. 多資料庫系統集成技術研究;39. 以Intention形式化為核心的BDI建模;40. 以機器人足球為標准問題的MAS體系結構與合作規劃;41. MAS中的策略協作學習;42. 基於多主體技術的Internet信息檢索和用戶建模43. 機器學習44. 計算智能:* 遺傳演算法的理論和應用;* 免疫模型與演算法的基本原理及其應用;* 人工神經網路的理論和應用;* 網路智能信息檢索與數據挖掘。45. 語言信息處理
計算機系統結構
1. 並行/分布處理及高性能計算機系統;2. 先進的計算機結果和網路計算;3. 系統的可重構和可擴展技術;4. 高性能存儲系統及處理機同步通信機制;5. 並行編譯技術;6. 並行調試技術;7. 並行與分布系統容錯性、可用性、可靠性技術;8. 指令及並行處理(ILP)體系結果的理論與技術;9. 對稱多處理器(SMP)並行體系結構的理論與技術;10. 機群並行處理體系結構、互連技術、程序設計環境以及計算密集型應用在機群系統中的實現;11. 超常指令字(VLIW)系統結構;12. 多線程機制;13. 並行處理技術;14. 並行演算法及環境;15. 並行分布式演算法;16. 各種並行與分布式軟體、工具與環境;17. 分布式與多機系統新型計算機系統機構及語言;18. 計算機系統體系結構軟體模擬環境構建方法研究;19. 當代主流並行機的體系結構模型、存儲技術的研究;20. 高性能通信機制與策略的研究;21. 分布式資源管理、故障恢復、進程動態遷移、分布式存取控制技術22. 指令級並行關鍵技術研究;23. 格點計算模型及體系結構的研究;24. 工作站機群、網路和網格等環境下的並行分布式計算模型;25. 可視化並行程序設計環境;26. 大規模科學與工程計算;27. VLSI 系統機構及RISC技術;28. 晶元設計;29. 計算機支持的協同工作(CSCW)30. 嵌入式技術及其應用;31. 嵌入式系統整體設計方法、技術與應用研究;32. 嵌入式系統軟硬體功能分配演算法、軟硬體協同驗證、協同模擬方法研究;33. 嵌入式微處理器設計;34. 嵌入式操作系統;35. 計算網路及其應用;36. 高速互連網路;37. 網路計算環境下的知識處理、網路體系結構、網路管理;38. 多媒體信息在網路中的傳輸及處理;39. 高速計算機網路和網路服務質量;40. 網路互聯、協議測試;41. 網路信息安全;42. 管理信息系統和網路信息檢索;43. 新型高性能計算機系統及其軟體技術;44. 計算機網路技術及應用;45. 智能卡技術;46. 信息安全與密碼;47. 波分復用WDM全光網中的路由及波長分配演算法的研究。
計算機軟體與理論
1. 軟體工程與方法;2. 資料庫和知識工程;3. 計算機圖形學與計算機輔助設計;4. 數據安全。5. 系統軟體(操作系統、編輯系統、實時系統) ;6. 軟體工程及環境;7. 分布對象計算;8. 並行及分布式處理;9. 語義理論及應用(自然語言、程序語言) ;10. 推理技術;11. 並行理論;12. 類型理論及應用;13. 計算語義學;14. CAD/CAM技術的理論研究、CAD/CAM系統的軟體開發平台研製;15. 工程與科學計算方面,對數值模擬進行的多學科的應用研究;16. 計算機圖形學與CAD;17. 群件與網路技術研究;18. 嵌入式資料庫;19. 電子商務;20. 計算機網路及信息系統;21. 軟體重建工程的理論與技術研究;22. 軟體規格說明的形式方法與CASE工具研究。23. 形式化方法:形式語義、代數規范、范疇論、類型論和重寫技術等的應用研究;24. 軟體系統結構的研究; 25. 程序設計語言的設計於實現.26. 可計算性和計算復雜性;27. 各種高效實用的計算模型;28. 一般難解問題的高效實用演算法;29. 面向應用的大尺度難解問題的工程實用演算法;30. 工程演算法集成和相應軟體體系結構;31. 工程演算法分析和評價體系等。
D. vasp5.2 並行編譯 BLAS問題 求助
小木蟲上有很多類似的帖子,可去小木蟲論壇看看,如「vasp 5.2 並行版本的編譯」,若想編譯單獨的BLAS庫函數,則可參考「gfortran+mpich2編譯siesta」中有關編譯BLAS庫函數的內容(引號內為小木蟲論壇里帖子標題)
E. 我們來講解以下如何才能編寫並行程序,以及如何編譯運行
我們下面以C 語言為例。
具體語法規則可參看《高性能計算並行編程技術-MPI 並行程序設計》一書。
mpicc -o outfilename cpi.c
其中outfilename 為編譯後的輸出文件,cpi.c 為源代碼.
可將cpi.c 下載後上傳的自己目錄下編譯.
例如:mpicc -o cpi cpi.c
如沒有安裝OpenPBS 則:
mpirun -np 4 cpi
否則:(一般安裝了)
之後需寫一作業提交腳本.例如:submit 內容如下:
#PBS -l nodes=nodes number
#PBS -N jobname#PBS -j oecd /home/xmin/Project
/usr/local/bin/mpiexec cpi
其中 #PBS -l nodes=nodes number 為指定幾個節點計算.如: nodes=4
#PBS -N jobname 為用戶命名的提交作業名稱.如: #PBS -N xmin
#PBS -j oe 為結果和錯誤輸出同文件.如無此項則分別在兩個文件中.
cd /home/xmin/Project 編譯後的輸出文件所在路徑(從根目錄開始).
/usr/local/bin/mpiexec cpi 為mpiexec 所在路徑.
下面是完整例子:
#PBS -l nodes=4
#PBS -N xmin#PBS -j oecd /home/xmin/Project
/usr/local/bin/mpiexec cpi
提交腳本如下:
qsub submit得到如下:3565.isc.math.nankai.e.cn
此為你的作業編號.
這樣你就可得到類似xmin.o2666 的文件,打開即可看到結果.
你還可以查詢作業提交情況.命令如下:qstat
F. 並行處理的並行演算法的基本策略
在並行處理技術中所使用的演算法主要遵循三種策略:
1.分而治之法:也就是把多個任務分解到多個處理器或多個計算機中,然後再按照一定的拓撲結構來進行求解。
2.重新排序法:分別採用靜態或動態的指令詞度方式。
3.顯式/隱式並行性結合:顯式指的是並行語言通過編譯形成並行程序,隱式指的是串列語言通過編譯形成並行程序,顯式/隱式並行性結合的關鍵就在於並行編譯,而並行編譯涉及到語句、程序段、進程以及各級程序的並行性。
二、並行性描述定義
利用計算機語言進行並行性描述的時候主要有三種方案:
1.語言擴展方案:也就是利用各種語言的庫函數來進行並行性功能的擴展。
2.編譯制導法:也稱為智能編譯,它是隱式並行策略的體現,主要是由並行編譯系統進行程序表示、控制流的分析、相關分析、優化分析和並行化劃分,由相關分析得到方法庫管理方案,由優化分析得到知識庫管理方案,由並行化劃分得到程序重構,從而形成並行程序。
3.新的語言結構法:這是顯式並行策略的體現。也就是建立一種全新的並行語言的體系,而這種並行語言通過編譯就能直接形成並行程序。
三、並行軟體
並行軟體可分成並行系統軟體和並行應用軟體兩大類,並行系統軟體主要指並行編譯系統和並行操作系統,並行應用軟體主要指各種軟體工具和應用軟體包。在軟體中所牽涉到的程序的並行性主要是指程序的相關性和網路互連兩方面。
1.程序的相關性:程序的相關性主要分為數據相關、控制相關和資源相關三類。
數據相關說明的是語句之間的有序關系,主要有流相關、反相關、輸出相關、I/O相關和求知相關等,這種關系在程序運行前就可以通過分析程序確定下來。數據相關是一種偏序關系,程序中並不是每一對語句的成員都是相關聯的。可以通過分析程序的數據相關,把程序中一些不存在相關性的指令並行地執行,以提高程序運行的速度。
控制相關指的是語句執行次序在運行前不能確定的情況。它一般是由轉移指令引起的,只有在程序執行到一定的語句時才能判斷出語句的相關性。控制相關常使正在開發的並行性中止,為了開發更多的並行性,必須用編譯技術克服控制相關。
而資源相關則與系統進行的工作無關,而與並行事件利用整數部件、浮點部件、寄存器和存儲區等共享資源時發生的沖突有關。軟體的並行性主要是由程序的控制相關和數據相關性決定的。在並行性開發時往往把程序劃分成許多的程序段——顆粒。顆粒的規模也稱為粒度,它是衡量軟體進程所含計算量的尺度,一般用細、中、粗來描述。劃分的粒度越細,各子系統間的通信時延也越低,並行性就越高,但系統開銷也越大。因此,我們在進行程序組合優化的時候應該選擇適當的粒度,並且把通訊時延盡可能放在程序段中進行,還可以通過軟硬體適配和編譯優化的手段來提高程序的並行度。
2.網路互連:將計算機子系統互連在一起或構造多處理機或多計算機時可使用靜態或動態拓撲結構的網路。靜態網路由點一點直接相連而成,這種連接方式在程序執行過程中不會改變,常用來實現集中式系統的子系統之間或分布式系統的多個計算結點之間的固定連接。動態網路是用開關通道實現的,它可動態地改變結構,使之與用戶程序中的通信要求匹配。動態網路包括匯流排、交叉開關和多級網路,常用於共享存儲型多處理機中。在網路上的消息傳遞主要通過尋徑來實現。常見的尋徑方式有存儲轉發尋徑和蟲蝕尋徑等。在存儲轉發網路中以長度固定的包作為信息流的基本單位,每個結點有一個包緩沖區,包從源結點經過一系列中間結點到達目的結點。存儲轉發網路的時延與源和目的之間的距離(段數)成正比。而在新型的計算機系統中採用蟲蝕尋徑,把包進一步分成一些固定長度的片,與結點相連的硬體尋徑器中有片緩沖區。消息從源傳送到目的結點要經過一系列尋徑器。同一個包中所有的片以流水方式順序傳送,不同的包可交替地傳送,但不同包的片不能交叉,以免被送到錯誤的目的地。蟲蝕尋徑的時延幾乎與源和目的之間的距離無關。在尋徑中產生的死鎖問題可以由虛擬通道來解決。虛擬通道是兩個結點間的邏輯鏈,它由源結點的片緩沖區、結點間的物理通道以及接收結點的片緩沖區組成。物理通道由所有的虛擬通道分時地共享。虛擬通道雖然可以避免死鎖,但可能會使每個請求可用的有效通道頻寬降低。因此,在確定虛擬通道數目時,需要對網路吞吐量和通信時延折衷考慮。
四、硬體技術在硬體技術方面主要從處理機、存儲器和流水線三個方面來實現並行。
1.處理機:主要的處理機系列包括CISC、RISC、超標量、VL1W、超流水線、向量以及符號處理機。
傳統的處理機屬於復雜指令系統計算(CISC)結構。指令系統大,指令格式可變,通用寄存器個數較少,基本上使用合一的指令與數據高速緩存,時鍾頻率較低,CPI較高,大多數利用ROM 實現微碼控制CPU,而當今的精簡指令系統計算(RISC)處理機指令格式簡單規范,面向寄存器堆,採用重疊寄存器窗口技術,具有多級Cache,多種流水線結構,強調編譯優化技術,時鍾頻率快,CPI低,大多數用硬連線控制CPU。
CISC或RISC標量處理機都可以採用超標量或向量結構來改善性能。標量處理機在每個周期內只發射一條指令並要求周期只完成從流水線來的一條指令。而在超標量處理機中,使用了多指令流水線,每個周期要發射多條指令並產生多個結果。由於希望程序中有許多的指令級並行性,因此超標量處理機更要依靠優化編譯器去開發並行性。
VL1W 結構是將水平微碼和超標量處理這兩種普遍採用的概念結合起來產生的。典型的超長指令字VL1W 機器指令字長度有數百位。在VLlW 處理機中,多個功能部件是並發工作的,所有的功能部件共享使用公用大型寄存器堆,由功能部件同時執行的各種操作是用VL1W 指令來同步的,每條指令可指定多個操作。VL1W 指令解碼比超標量指令容易,但在開發不同數量的並行性時總是需要不同的指令系統。VL1W 主要是開發標量操作之間的並行性,它的成功與否很大程度取決於代碼壓縮的效率,其結構和任何傳統的通用處理機完全不兼容。即使同一結構的不同實現也不大可能做到彼此二進制兼容。VL1W 的主要優點在於它的硬體結構和指令系統簡單,在科學應用領域可以發揮良好作用,但在一般應用場合可能並不很好用。
向量處理機對數組執行向量指令,每條指令都包含一串重復的操作。它是專門設計用來完成向量運算的協處理機,通常用於多流水線超級計算機中。向量處理機可以利用循環級展開所得的並行性,它可以附屬於任何標量處理機。專用的向量流水線可以在循環控制中消除某些軟體開銷,它的效果與優化編譯器將順序代碼向量化的性能很有關系。從理論上說,向量機可以具有和超標量處理機同樣的性能,因此可以說向量機的並行性與超標量機相同。
符號處理機是為AI應用而研製的,已用於定理證明、模式識別、專家系統、知識工程、文本檢索、科學以及機器智能等許多應用領域。在這些應用中,數據和知識表達式、原語操作、演算法特性、存儲器、I/0和通信以及專用的結構特性與數值計算是不一樣的,符號處理機也稱為邏輯程序設計語言處理機、表處理語言處理機或符號變換器。符號處理並不和數值數據打交道,它處理的是邏輯程序、符號表、對象、劇本、黑板、產生式系統、語義網路、框架以及人工神經網路等問題。這些操作需要專門的指令系統,通常不使用浮點操作。
2.存儲器:存儲設備按容量和存取時間從低到高可分為寄存器、高速緩存、主存儲器、磁碟設備和磁帶機五個層次。較低層存儲設備與較高層的相比,存取速度較快、容量較小,每位元組成本較高、帶寬較寬、傳輸單位較小。
存放在存儲器層次結構中的信息滿足三個重要特性:包含性、一致性和局部性。所謂包含性,指的是一個信息字的復製品可以在比它高的所有層中找到,而如果在高層中丟失了一個信息,則在比它低的所有層中此信息也將丟失。CPU 和高速緩存之間的信息傳送是按字進行的,高速緩存和主存儲器間用塊作為數據傳送的基本單位,主存和磁碟之間又是以頁面為基本單位來傳送信息的,而在磁碟和磁帶機之間的數據傳送則是按文件級處理的。所謂一致性要求的是同一個信息項與後繼存儲器層次上的副本是一致的。也就是說,如果在高速緩存中的一個字被修改過,那麼在所有更高層上該字的副本也必須立即或最後加以修改。為了盡量減少存儲器層次結構的有效存取時間,通常把頻繁使用的信息放在較低層次。維護存儲器層次結構一致性一般有兩種策略,一種是寫直達策略,也就是如果,則立即在所有高層存儲器中進行同樣的修改;另一種是寫回策略,也就是在較低層中對信息進行修改後並不立即在高層存儲器中進行相應的修改,而是等到該信息將被替換或將從低層中消失時才在所有高層存儲器中進行同樣的修改。甚至可以將寫直達和寫回策略的優點結合起來,形成寫一次協議來維護存儲器的一致性。
存儲器的層次結構是在一種程序行為——訪問的局部性基礎上開發出來的。主要有時間局部性、空間局部性和順序局部性。時間局部性指的是最近的訪問項很可能在不久的將來再次被訪問。它往往會引起對最近使用區域的集中訪問。空間局部性表示一種趨勢,指的是一個進程訪問的各項其地址彼此很近。順序局部性指的是在典型程序中,除非是轉移指令,一般指令都是順序執行的。
在多處理機系統中一般使用共享存儲器。對共享存儲器的組織一般採用低位交叉、高位交叉、高低位交叉三種方法。低位交叉又稱並發存取,它是把相鄰的地址放在相鄰的存儲器模塊中,在訪問時不容易產生沖突,並行性較好,但可靠性容錯能力和擴展性均較差。高位交叉又稱允許同時存取,它是把相鄰地址分配到同一個存儲器模塊中,可靠性、容錯能力和擴展性均較強,但訪問時易產生沖突,帶寬較窄,並行性較差。高低位交叉存取又稱C—s存取,它是結合了高位交叉和低位交叉兩種方法的優點,既解決了沖突問題,又能有效地提高容錯能力和並行性,最適合於向量處理機結構。
3.流水線:流水線技術主要有指令流水線技術和運算流水線技術兩種。
指令流水線技術主要目的是要提高計算機的運行效率和吞吐率。它主要通過設置預取指令緩沖區、設置多功能部件、進行內部數據定向、採取適當的指令調度策略來實現。指令調度的策略主要有靜態和動態兩種,靜態詞度是基於軟體的,主要由編譯器完成,動態詞度是基於硬體的,主要是通過硬體技術進行。
運算流水線主要有單功能流水線和多功能流水線兩種。其中多功能流水線又可分為靜態流水線和動態流水線。靜態流水線技術只用來實現確定的功能,而動態流水線可以在不同時間重新組合,實現不同的功能,它除流線連接外,還允許前饋和反饋連接,因此也稱為非線性流水線。這些前饋和反饋連接使得進入流水線的相繼事件的詞度變得很不簡單。由於這些連接,流水線不一定從最後一段輸出。根據不同的數據流動模式,人們可以用同一條流水線求得不同功能的值。
並行計算機發展簡述
40 年代開始的現代計算機發展歷程可以分為兩個明顯的發展時代:串列計算時代、並行計算時代。每一個計算時代都從體系結構發展開始,接著是系統軟體(特別是編譯器與操作系統)、應用軟體,最後隨著問題求解環境的發展而達到頂峰。創建和使用並行計算機的主要原因是因為並行計算機是解決單處理器速度瓶頸的最好方法之一。
並行計算機是由一組處理單元組成的,這組處理單元通過相互之間的通信與協作,以更快的速度共同完成一項大規模的計算任務。因此,並行計算機的兩個最主要的組成部分是計算節點和節點間的通信與協作機制。並行計算機體系結構的發展也主要體現在計算節點性能的提高以及節點間通信技術的改進兩方面。
60 年代初期,由於晶體管以及磁芯存儲器的出現,處理單元變得越來越小,存儲器也更加小巧和廉價。這些技術發展的結果導致了並行計算機的出現,這一時期的並行計算機多是規模不大的共享存儲多處理器系統,即所謂大型主機(Mainframe)。IBM360 是這一時期的典型代表。
到了60 年代末期,同一個處理器開始設置多個功能相同的功能單元,流水線技術也出現了。與單純提高時鍾頻率相比,這些並行特性在處理器內部的應用大大提高了並行計算機系統的性能。伊利諾依大學和Burroughs 公司此時開始實施IlliacIV 計劃,研製一台64 個CPU 的SIMD 主機系統,它涉及到硬體技術、體系結構、I/O 設備、操作系統、程序設計語言直至應用程序在內的眾多研究課題。不過,當一台規模大大縮小了的16CPU 系統終於在1975 年面世時,整個計算機界已經發生了巨大變化。
首先是存儲系統概念的革新,提出虛擬存儲和緩存的思想。IBM360/85 系統與360/91是屬於同一系列的兩個機型,360/91 的主頻高於360/85,所選用的內存速度也較快,並且採用了動態調度的指令流水線;但是,360/85 的整體性能卻高於360/91,唯一的原因就是前者採用了緩存技術,而後者則沒有。
其次是半導體存儲器開始代替磁芯存儲器。最初,半導體存儲器只是在某些機器被用作緩存,而CDC7600 則率先全面採用這種體積更小、速度更快、可以直接定址的半導體存儲器,磁芯存儲器從此退出了歷史舞台。與此同時,集成電路也出現了,並迅速應用到了計算機中。元器件技術的這兩大革命性突破,使得IlliacIV 的設計者們在底層硬體以及並行體系結構方面提出的種種改進都大為遜色。
1976 年CRAY-1 問世以後,向量計算機從此牢牢地控制著整個高性能計算機市場15 年。CRAY-1 對所使用的邏輯電路進行了精心的設計,採用了我們如今稱為RISC 的精簡指令集,還引入了向量寄存器,以完成向量運算。這一系列全新技術手段的使用,使CRAY-1 的主頻達到了80MHz。
微處理器隨著機器的字長從4 位、8 位、16 位一直增加到32 位,其性能也隨之顯著提高。正是因為看到了微處理器的這種潛力,卡內基- 梅隆大學開始在當時流行的DECPDP11 小型計算機的基礎上研製成功一台由16 個PDP11/40 處理機通過交叉開關與16 個共享存儲器模塊相連接而成的共享存儲多處理器系統C.mmp。
從80 年代開始,微處理器技術一直在高速前進。稍後又出現了非常適合於SMP 方式的匯流排協議,而伯克利加州大學則對匯流排協議進行了擴展,提出了Cache 一致性問題的處理方案。從此,C.mmp 開創出的共享存儲多處理器之路越走越寬;現在,這種體系結構已經基本上統治了伺服器和桌面工作站市場。
同一時期,基於消息傳遞機制的並行計算機也開始不斷涌現。80 年代中期,加州理工成功地將64 個i8086/i8087 處理器通過超立方體互連結構連結起來。此後,便先後出現了Intel iPSC 系列、INMOS Transputer 系列,Intel Paragon 以及IBM SP 的前身Vulcan 等基於消息傳遞機制的並行計算機。
80 年代末到90 年代初,共享存儲器方式的大規模並行計算機又獲得了新的發展。IBM將大量早期RISC 微處理器通過蝶形互連網路連結起來。人們開始考慮如何才能在實現共享存儲器緩存一致的同時,使系統具有一定的可擴展性(Scalability)。90 年代初期,斯坦福大學提出了DASH 計劃,它通過維護一個保存有每一緩存塊位置信息的目錄結構來實現分布式共享存儲器的緩存一致性。後來,IEEE 在此基礎上提出了緩存一致性協議的標准。
90 年代以來,主要的幾種體系結構開始走向融合。屬於數據並行類型的CM-5 除大量採用商品化的微處理器以外,也允許用戶層的程序傳遞一些簡單的消息;CRAY T3D是一台NUMA 結構的共享存儲型並行計算機,但是它也提供了全局同步機制、消息隊列機制,並採取了一些減少消息傳遞延遲的技術。
隨著商品化微處理器、網路設備的發展,以及MPI/PVM 等並行編程標準的發布,機群架構的並行計算機出現。IBM SP2 系列機群系統就是其中的典型代表。在這些系統中,各個節點採用的都是標準的商品化計算機,它們之間通過高速網路連接起來。
今天,越來越多的並行計算機系統採用商品化的微處理器加上商品化的互連網路構造,這種分布存儲的並行計算機系統稱為機群。國內幾乎所有的高性能計算機廠商都生產這種具有極高性能價格比的高性能計算機,並行計算機就進入了一個新的時代,並行計算的應用達到了前所未有的廣度和深度。
並行計算機隨著微處理晶元的發展,已經進入了一個新時代。目前並行計算機的性能已經突破20PFLOPS,正在向百億億次發展。我國並行計算機的研製已經走在世界前列。2003年由聯想公司生產的深騰6800 在2003 年11 月世界TOP500 排名中位列第14 名,2004 年曙光公司生產的曙光4000A 在2004 年6 月的世界TOP500 排名中位列第10 名,這是我國公開發布的高性能計算機在世界TOP500 中首次進入前十名,這標志著我國在並行計算機系統的研製和生產中已經趕上了國際先進水平,為提高我國的科學研究水平奠定了物質基礎。2013年國際超級計算機大會最新發布的世界超級計算機500強排名中,國防科技大學研製的天河二號超級計算機系統,以峰值計算速度每秒5.49億億次、持續計算速度每秒3.39億億次雙精度浮點運算的優異性能位居榜首。
從TOP500 的前10 名來看,美國仍然是超級計算機的最大擁有者。按照世界TOP500 的統計數據來分析,美國在計算能力上佔有近全世界的一半,在TOP500 中的所有計算機中擁有的數量超過50%。
G. 編譯是具體是什麼概念
把高級語言的源文件,翻譯成機器碼,但是變數和函數的地址在編譯時沒有確定,確定符號地址的過程稱為鏈接
H. 目前處理並行編譯技術有哪幾種方法
三種形式編輯
時間並行
時間並行指時間重疊,在並行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬體設備的各個部分,以加快硬體周轉而贏得速度。?
時間並行性概念的實現方式就是採用流水處理部件。這是一種非常經濟而實用的並行技術,能保證計算機系統具有較高的性能價格比。目前的高性能微型機幾乎無一例外地使用了流水技術。
空間並行
空間並行指資源重復,在並行性概念中引入空間因素,以「數量取勝」為原則來大幅度提高計算機的處理速度。大規模和超大規模集成電路的迅速發展為空間並行技術帶來了巨大生機,因而成為實現並行處理的一個主要途徑。空間並行技術主要體現在多處理器系統和多計算機系統。但是在單處理器系統中也得到了廣泛應用。?
時間並行+空間並行
指時間重疊和資源重復的綜合應用,既採用時間並行性又採用空間並行性。顯然,第三種並行技術帶來的高速效益是最好的。
I. 什麼是並行處理
並行處理是計算機系統中能同時執行兩個或多個處理的一種計算方法。並行處理可同時工作於同一程序的不同方面。並行處理的主要目的是節省大型和復雜問題的解決時間。
為使用並行處理,首先需要對程序進行並行化處理,也就是說將工作各部分分配到不同處理進程(線程)中。並行處理由於存在相互關聯的問題,因此不能自動實現。
另外,並行也不能保證加速。從理論上講,在 n 個並行處理的執行速度可能會是在單一處理機上執行的速度的 n 倍。
利用計算機語言進行並行性描述的時候主要有三種方案:
1.語言擴展方案:也就是利用各種語言的庫函數來進行並行性功能的擴展。
2.編譯制導法:也稱為智能編譯,它是隱式並行策略的體現,主要是由並行編譯系統進行程序表示、由相關分析得到方法庫管理方案,由優化分析得到知識庫管理方案,從而形成並行程序。
3.新的語言結構法:這是顯式並行策略的體現。也就是建立一種全新的並行語言的體系,而這種並行語言通過編譯就能直接形成並行程序 。
J. 並行處理技術的三種形式
時間並行指時間重疊,在並行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬體設備的各個部分,以加快硬體周轉而贏得速度。?
時間並行性概念的實現方式就是採用流水處理部件。這是一種非常經濟而實用的並行技術,能保證計算機系統具有較高的性能價格比。目前的高性能微型機幾乎無一例外地使用了流水技術。 資源共享也是在並行性概念中引入時間因素,它是通過軟體的方法實現的。即多個用戶按一定的時間順序輪流使用同一套硬體設備;既可以是按一定的時間順序共享CPU,也可以是CPU與外圍設備在工作時間上的重疊。這種並行措施表現在多道程序和分時系統中,而分布式處理系統和計算機網路則是更高層次的資源共享。
從第一台電子計算機發明,電子計算機已經經歷了五代。計算機發展到第四代時,出現了用共享存儲器、分布存儲器或向量硬體選件的不同結構的並行計算機,開發了用於並行處理的多處理操作系統專用語言和編譯器,同時產生了用於並行處理或分布計算的軟體工具和環境。到出現的計算機稱為第五代計算機,它們的主要特點是進行大規模並行處理。並行處理技術是在微電子、印刷電路、高密度封裝技術、高性能處理機、存儲系統、外圍設備、通信通道、語言開發、編譯技術、操作系統、程序設計環境和應用問題等研究和工業發展的產物。
並行計算機具有代表性的應用領域有:天氣預報建摸、VLSI電路的計算機輔助設計、大型資料庫管理、人工智慧、犯罪控制和國防戰略研究等,而且它的應用范圍還在不斷地擴大。並行處理技術主要是以演算法為核心,並行語言為描述,軟硬體作為實現工具的相互聯系而又相互制約的一種結構技術。本文就並行處理技術的演算法策略、描述性定義及軟硬體方面的實現做一個簡單的介紹。