PGI 8.0版高性能編譯器及開發(fā)工具(Portland Group)
意法半導(dǎo)體全資子公司Portland Group®公布支持 Linux、Mac OS X和Windows三大操作系統(tǒng)的PGI® 8.0版高性能編譯器及開發(fā)工具系列產(chǎn)品。在所支持的三大平臺上,PGI 8.0版Fortran和C編譯器均全面支持最近發(fā)布的OpenMP 3.0多核并行編程標(biāo)準。新版軟件還支持在Linux和MacOS平臺上開發(fā)和調(diào)試OpenMPI應(yīng)用程序,并完善了現(xiàn)有MPI編譯程序在Linux和Windows集群上的功能。目前,PGI 8.0版用戶通過使用完全相同的PGI編譯器、最新的OpenMP功能、可選的MPI軟件和捆綁的OpenMP/MPI調(diào)試器和分析工具,可以在任何一款主流的臺式機或服務(wù)器集群操作系統(tǒng)上開發(fā)部署多核和并行的應(yīng)用程序。作為具有重要意義的全新開發(fā)成果,PGI 8.0版標(biāo)志著Portland Group開始進入加速計算領(lǐng)域,可以條件性支持并行計算任務(wù),從x64主處理器自動分配到英偉達(NVIDIA)的具有CUDA功能的GPU處理器。 .
“PGI的Unified Binary技術(shù)使開發(fā)人員能夠利用AMD和英特爾的最新的CPU創(chuàng)新技術(shù),同時把不同的x64 處理器視為一個單一平臺,配合PGI 8.0版的新增功能,為HPC用戶和大型多平臺超級計算中心提供了最大的靈活性和自主性。”Portland Group總監(jiān)Douglas Miles表示。
全新的性能分析工具
現(xiàn)有編譯器及開發(fā)工具產(chǎn)品線已包含目前所有的最佳的HPC方法和多核編程技術(shù)。除了延續(xù)現(xiàn)有產(chǎn)品線的成功之處外,PGI 8.0版編譯器還增加了一個全新的功能:自動分析源代碼,然后生成一個巨大的數(shù)據(jù)庫,描述可行的或被抑制的性能優(yōu)化方案,并提供源代碼的修改意見,以便利用可行的優(yōu)化措施。隨著8.0版編譯器的推出,PGI利用通用編譯器反饋格式(CCFF)使數(shù)據(jù)重組和訪問數(shù)據(jù)的界面實現(xiàn)了標(biāo)準化。為了努力改進PGI、第三方和高性能計算產(chǎn)業(yè)的軟件調(diào)試工具的可用性和互操作性,PGI正在公布CCFF標(biāo)準,業(yè)內(nèi)人士可以免費獲得這項標(biāo)準。登錄PGI網(wǎng)站http://www.pgroup.com/ccff可以獲得更詳細的CCFF的信息。
在一個結(jié)構(gòu)合理而緊湊的直觀的圖形用戶界面(GUI)內(nèi),PGI的PGPROF®8.0性能分析工具可以顯示CCFF數(shù)據(jù)以及用戶源代碼,同時還支持命令行界面。程序員可以迅速簡易地發(fā)現(xiàn)結(jié)構(gòu)合理的代碼段,以及性能有待改進的需要重組的代碼段。除能夠識別占用計算機時間或系統(tǒng)資源最多的應(yīng)用程序代碼段外,PGPROF還為程序員提供具體且可行的源代碼性能優(yōu)化反饋建議。通過識別以下內(nèi)容,以每個線程和/或每個進程顯示數(shù)據(jù)的方法能夠簡化性能調(diào)試:
• 單指令多數(shù)據(jù)流擴展(SSE)矢量回路,以及矢量化在非矢量回路受限制的原因
• 多核用自動并行化回路,和并行化在串行回路上受限的原因
• OpenMP并行化的備選回路
• 回路的計算強度,把負荷分配給圖形處理器(GPU)或加速器所需的備選回路
• 迭代數(shù)量極大或極小的回路,以及SSE和高速緩存分層架構(gòu)性能的優(yōu)化方法
• 數(shù)據(jù)預(yù)取,通過指令和pragmas命令優(yōu)化數(shù)據(jù)預(yù)取的機會
除這些詳細的分析外,PGPROF還提供程序級總體分析,包括行內(nèi)函數(shù)和例程的信息;每個文件是如何編譯的信息;整個系統(tǒng)配置的信息;以及 Fortran、C和C++源代碼的性能關(guān)鍵特性。傳統(tǒng)的性能調(diào)試工具只能報告和調(diào)試一個特殊類型的處理器或系統(tǒng),或只能做并行化的調(diào)優(yōu)任務(wù),而PGI 8.0編譯器及開發(fā)工具,能夠在現(xiàn)代化的多核 x64 CPU或GPU加速器上,為程序員提供調(diào)試反饋,以及通過重組回路和算法來提高性能的建議。
“計算機處理并行化并不等于高性能,”Portland Group的編譯器工程師Michael Wolfe表示,“問題的核心不是并行計算,而是系統(tǒng)性能,并行只不過是實現(xiàn)高性能的一個工具?!?
臨時性GPU支持
PGI 8.0版還包含技術(shù)預(yù)覽,介紹業(yè)內(nèi)首款把x64主處理器的計算任務(wù)自動分配給圖形處理器(GPU)的Fortran和C編譯器。直到現(xiàn)在,專注GPU加速器的C和C++開發(fā)人員還必須依賴把語言擴展到程序中。 從Fortran應(yīng)用程序調(diào)用GPU受到極大的限制,需要x64+GPU程序員進行詳細的編程,包括必須理解和指定數(shù)據(jù)用途信息,管理x64主處理器和GPU之間的所有數(shù)據(jù)傳輸需要人工排列調(diào)用序列。采用PGI 8.0版的臨時性支持功能,通過給現(xiàn)有的兼容高級標(biāo)準的Fortran和C程序增加類似于 OpenMP的編譯器指令,然后選擇適合的編譯器重新編譯,程序員可以在x64+GPU 平臺上加快Linux應(yīng)用程序的開發(fā)和部署。
“越來越多的軟件發(fā)行商利用CUDA開發(fā)環(huán)境,開發(fā)創(chuàng)新的解決方案,充分發(fā)揮英偉達GPU的強大性能,PGI正在加入到這個行列中來,”英偉達Tesla計算解決方案總經(jīng)理Andy Keane表示,“憑借他們20年的開發(fā)歷史和輝煌業(yè)績,我們期待PGI的解決方案給高性能計算產(chǎn)業(yè)創(chuàng)造機會,使開發(fā)人員能夠逐漸移植大量的傳統(tǒng)的科研和工程代碼,以充分利用英偉達Tesla加速器的優(yōu)勢?!?
PGI 8.0 x64+GPU編譯器自動分析整個程序結(jié)構(gòu)和數(shù)據(jù),在x64 CPU和GPU 之間分配用戶指令規(guī)定的應(yīng)用程序代碼,定義并生成一個優(yōu)化的回路映射,自動使用并行內(nèi)核、硬件線程功能和現(xiàn)代GPU的SIMD矢量功能。除規(guī)定代碼區(qū)域和加速功能的指令和pragma命令外,PGI Fortran和C編譯器還支持用于精細控制回路映射、存儲單元分配和GPU存儲分層架構(gòu)優(yōu)化的用戶指令。PGI編譯器生成統(tǒng)一的x64+GPU目標(biāo)文件和管理數(shù)據(jù)進出CPU的可執(zhí)行文件,同時還充分利用主處理器側(cè)的開發(fā)實用工具——鏈接程序、函數(shù)庫、makefiles,無需修改現(xiàn)有標(biāo)準的高性能計算Linux/x64編程環(huán)境。
PGI8.0版的另一新亮點是:在Mac OS X上支持OpenMP并行和本機OpenMPI并行調(diào)試;在Microsoft Windows上新簡化的授權(quán)設(shè)置;支持Microsoft HPC Server 2008集群;支持AMD和英特爾最新的處理器。
PGI新編譯器的評估版可以從Portland Group網(wǎng)站www.pgroup.com下載,用戶需要注冊。