- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平行运算为工程领域带来新视野
平行運算為工程領域帶來新視野
作者 :Loren Dean, Silvina Grad-Freilich
在科技運算的領域裡 ,有關平行程式設計(parallel programming) 的討論重點多半圍
繞在如何自訂演算法以提升硬體的使用效率 。而激發這些討論的 ,是幾個與高效能
系統有關的因素 :多核心(multicore)和眾核心(many-core)系統的問世 、繪圖處理器
(GPU)等可程式設計的裝置的出現 ,以及現成商業軟體(COTS)電腦叢集逐漸普遍的
趨勢 。
直至最近 ,商業高階工具才現身支援高效能系統科技運算應用程式的開發 。平行程
式設計是一項專業人員專用的深奧藝術 ,這些專業人員使用自訂安裝程式和低階程
式庫 ,並配合特定的硬體而調整其應用程式 ,希望能夠藉此發揮最大的效能 。IDC
曾在 2007 年的簡報會上指出 ,由於缺乏適當的程式設計環境 ,要跨越單一節點的
1
範圍擴充規模可說困難重重 。但是如今 ,隨著高效能系統的逐漸普遍 ,讓所有人
都能更容易使用軟體程式來控制這些系統已是刻不容緩的任務 。
為了達到這個目標 ,平行程式設計解決方案必須超越自訂演算法和效能 。工具軟體
的生態系統發展 ,不僅為工程師在平行應用程式的設計 、開發和偵錯方面提供不少
助益 ,也能夠完全運用快速發展的硬體 。為了達到目的 ,過去幾年來這些已極大成
熟的新興生態系統必須能 :
擴充開發序列應用程式的標準工具功能 ,以支援平行程式設計 ;
支援應用的規模擴大 ,從簡單的多核心桌上型電腦擴展到複雜的電腦叢集和網
格架構 ,而無需修改應用程式碼 ;
提供強大的整合式開發環境(IDE) ;
能以批次(batch)和互動模式執行應用程式 。
語言支援
能否充分支援平行式程式設計 ,是選擇程式設計語言的重要考量 。這項支援涵蓋範
圍從巧妙隱含到極度外顯的語言建構都有。如果採用隱含方式 ,則系統不必更改現
有的程式 ,程式即可自動執行平行化 , 如果採用外顯方式 ,則使用者必須為程式
加註 ,程式才能執行平行化的工作 。隱含式的平行處理原則 ,目前仍然是研究的活
躍領域 ,但因為目前尚無更具體的解決方案 ,因此在可見的未來 ,還是需要某種外
1
2
顯程度的語言 。在理想的情況下 ,程式語言應該直接支援高階平行語言建構 ,換
句話說 ,使用者至少需要為程式進行基本加註 ,才能發揮最佳的效能 。
傳統的平行程式設計解決方案多半採用外顯方式 ,也就是說 ,通常都是使用訊息傳
遞介面(Message Passing Interface ,MPI) 指令 。MPI 是一種用於平行程式點對點通
訊的工業標準通訊協定 。如果採用這種方式 ,程式設計師必須使用低階語言建構 ,
而這就形成極大的阻礙 。
有多家軟體公司表示他們需要平行式程式設計的支援 。例如 ,Microsoft Parallel
Extensions 為 .NET Framework 提供語言建構 ,能讓任何用 .NET 語言編寫的應用程
式進行並行處理 。這些建構可以抽離低階程式設計的細節 。
MathWorks™ 平行運算工具則可讓使用者跨越隱含和外顯的界線來編寫程式 。例
®
如 ,MATLAB 使用者程式設計運算密集應用程式 ,可將 FOR loop 迴圈註解為
PARFOR loop 迴圈 。PARFOR loop 迴圈在單處理器系統上執行時 ,其操作方式與
傳統的 FOR loop 迴圈無異 。
但是在多核心機器或叢集上執行時 ,PARFOR 顯然能有效地利用目前能夠使用的
其他運算資源 ,而且 ,使用者在進行資料密集應用設計時還能將陣列註解成分散式
陣列 ,配置在多個核心或處理器上 ,分散式陣列可讓使用者開發平行應用程式 ,而
不必顧慮訊息傳遞的基本細節 。在隱含式程式設計的理念中 ,平行處理的應用程式
是不需要修改程式碼的 。只要朝著這個理念前進 ,久而久之 MathWorks 便能在其
工具箱中逐漸增加對平行運算的直接支援 ,而無需修改使用它們的應用程式 。
文档评论(0)