一、多媒體運(yùn)算——主要使用整型和雙精度運(yùn)算。例如用于圖形圖像處理和三維圖像生成的HPC應(yīng)用就屬于這種類型。它對HPC節(jié)點(diǎn)的多媒體計算功能要求很高,而英特爾至強(qiáng)5500集成的SSE系列指令集及相應(yīng)的浮點(diǎn)單元設(shè)計在處理這類應(yīng)用中表現(xiàn)就非常出色;
二、科學(xué)計算——主要使用浮點(diǎn)運(yùn)算功能,這也是目前HPC系統(tǒng)的最主要應(yīng)用領(lǐng)域。像天氣預(yù)報和石油勘探等HPC應(yīng)用都屬于這一類。
三、數(shù)據(jù)庫應(yīng)用——主要依仗邏輯計算和I/O操作的性能。目前數(shù)據(jù)庫集群系統(tǒng)和網(wǎng)格數(shù)據(jù)庫系統(tǒng)就屬于這類應(yīng)用。它需要計算節(jié)點(diǎn)有很強(qiáng)的I/O處理能力,同時,整個HPC系統(tǒng)也要具備足夠的外接存儲空間。
根據(jù)以上信息確定常用應(yīng)用所屬的類型后,用戶接下來還要對它的具體特征進(jìn)行分析,例如它是更看重系統(tǒng)的浮點(diǎn)運(yùn)算性能、內(nèi)存子系統(tǒng)性能,I/O性能、以及系統(tǒng)各節(jié)點(diǎn)之間互聯(lián)的性能,這就需要用戶應(yīng)用專業(yè)的技術(shù)手段對其進(jìn)行應(yīng)用特征分析了。分析的結(jié)果,其實(shí)就是用戶對系統(tǒng)硬件配置進(jìn)行進(jìn)一步優(yōu)化的基礎(chǔ)和準(zhǔn)繩。而值得一提的是,這種分析用戶可以自行操作,也可以求助于專業(yè)的HPC領(lǐng)域廠商,例如英特爾的相關(guān)技術(shù)支持團(tuán)隊(duì),就為不少重要的HPC用戶提供了這種支持和服務(wù)。
HPC系統(tǒng)配置優(yōu)化要全盤考慮
通過細(xì)致的分析,相信許多HPC用戶已經(jīng)能對自身應(yīng)用的計算需求有了更為清晰的認(rèn)識。那么接下來,就讓我們看看應(yīng)該如何針對它們需求,優(yōu)化和提升英特爾至強(qiáng)5500平臺的系統(tǒng)的性能表現(xiàn)吧。
同樣,在調(diào)整和優(yōu)化硬件配置之前,用戶也有必須通過各種測試評估手段摸清它的特性,例如用Cycle統(tǒng)計、CPI值、內(nèi)存訪問、緩存效率、NUMA、SMT、IO粒度/延遲、MPI粒度/擴(kuò)展性等方面的分析手段來評價HPC平臺,并以性能特征雷達(dá)圖來綜合比較不同處理器對應(yīng)用的適用性。
在至強(qiáng)5500上,英特爾采用了SSE4.2指令集,內(nèi)置DDR3內(nèi)存控制器、QPI等先進(jìn)技術(shù),它們或能可加速字符和文本處理器、搜索、及在大型數(shù)據(jù)庫中搜索數(shù)據(jù)的速度,支持新的通信領(lǐng)域的指令,或可以強(qiáng)化內(nèi)存子系統(tǒng)性能,或者可以實(shí)現(xiàn)較強(qiáng)在系統(tǒng)I/O帶寬,而且它們帶來的這些潛力,只要用戶的應(yīng)用支持即可產(chǎn)生效用,而另一些至強(qiáng)5500處理器的特性,例如超線程技術(shù),睿頻技術(shù)、NUMA特性等,則需要用戶視需求自行激活和關(guān)閉。例如NUMA特性開啟后可以提升大部分HPC應(yīng)用的性能,但在操作系統(tǒng)開多線程的情況下,關(guān)閉它反而有助于防止這些線程的內(nèi)存分配導(dǎo)致不平衡的內(nèi)存訪問分布的情況。
相對來說,睿頻技術(shù)和超線程技術(shù)的適用性更強(qiáng)一些,前者無論是運(yùn)行多線程應(yīng)用還是單線程應(yīng)用都能發(fā)揮效力,而且特別適用于計算密集型的應(yīng)用,后者則能在運(yùn)行多線程應(yīng)用時實(shí)現(xiàn)最佳的效率。
當(dāng)然,要優(yōu)化至強(qiáng)5500節(jié)點(diǎn)在HPC應(yīng)用中的表現(xiàn),用戶優(yōu)化的方向還不能僅僅限于處理器,例如在I/O方面,要提高M(jìn)PI網(wǎng)絡(luò)節(jié)點(diǎn)通信速度.最高M(jìn)PI地址就應(yīng)設(shè)置得較小。同時,單個節(jié)點(diǎn)的節(jié)點(diǎn)間進(jìn)程數(shù)越少越好,最好是一個。另外,由于越來越多的應(yīng)用受限于I/O,存儲系統(tǒng)正起著越來越重要的作用,此時,磁盤陣列(RAID)就是一種提供高性能I/O的最常見存儲設(shè)備,所以在存儲方面,多盤最好作成RAID,以保證I/O并行。
軟件調(diào)優(yōu)層層推進(jìn)
除將HPC系統(tǒng)硬件配置調(diào)為最優(yōu)化外,HPC用戶要想獲得最好的應(yīng)用效果,最好不要忽視其應(yīng)用軟件的調(diào)優(yōu)。其實(shí)早在2005 年3月的時候,C++大師 Herb Sutter 在 《Dr.Dobb’s Journal》上就發(fā)表了《免費(fèi)午餐已經(jīng)結(jié)束》一文。在他看來,現(xiàn)在的程序員對效率、伸縮性、吞吐量等一系列性能指標(biāo)相當(dāng)忽視,很多性能問題都仰仗越來越快的處理器來解決。但處理器的性能在不久的將來,很有可能會達(dá)到一定的極限。因此越來越多的應(yīng)用程序?qū)⒉坏貌恢泵嫘阅軉栴},而解決這些問題的辦法就是采用并發(fā)編程技術(shù)。
顯而易見,采用針對多核多線程平臺的并行開放方案,能有效提高性能,但如果考慮不全面,如忽略帶寬、數(shù)據(jù)競爭及數(shù)據(jù)同步不當(dāng)?shù)纫蛩?,效率反而會降低,?yīng)用軟件執(zhí)行的速度也會越來越慢。
除了走向并行化,HPC的軟件調(diào)優(yōu)還涉及了很多其他方面的內(nèi)容,因?yàn)檐浖?yōu)化本身是一個貫穿整個軟件開發(fā)周期,從開始設(shè)計到最終完成一直進(jìn)行的連續(xù)迭代過程。同樣重要的是,在80/20原則指導(dǎo)下要知道何時適可而止,以及由算法特性決定的理論并行上限。此外,還有一點(diǎn)對于軟件調(diào)優(yōu)至關(guān)重要,那就是用戶和軟件開發(fā)商要在優(yōu)化前,找出其性能瓶頸所在。正如最偉大的 C 語言大師 Rob Pike 所說:“瓶頸經(jīng)常出現(xiàn)在意想不到的地方,如果你無法斷定程序會在什么地方耗費(fèi)運(yùn)行時間,那就別急于胡亂找個地方去修改代碼,除非你已經(jīng)證實(shí)那兒就是瓶頸所在。”
對于HPC應(yīng)用的調(diào)優(yōu),英特爾公司通過為客戶提供相關(guān)的技術(shù)支持,也積累了一些經(jīng)驗(yàn)和心得。例如它一直強(qiáng)調(diào)用戶在部署和優(yōu)化HPC系統(tǒng)性能的時候,必須遵循從系統(tǒng)到應(yīng)用再到微架構(gòu)的順序,在將應(yīng)用之外的系統(tǒng)影響調(diào)試到最優(yōu)狀態(tài)后,才能開始考慮應(yīng)用的優(yōu)化。而在對應(yīng)用本身進(jìn)行優(yōu)化的時候,也不能急于進(jìn)入模型算法以及代碼級的調(diào)整,如要加強(qiáng)并行性,也是要從程序的實(shí)現(xiàn)上從進(jìn)程級到線程級逐步提高并行性能。
除了一些類似的經(jīng)驗(yàn)可供參考,英特爾的軟件調(diào)優(yōu)工具,如Parallel Studio也可以為用戶帶來實(shí)實(shí)在在的幫助,它由一組完整的工具產(chǎn)品組成,包括高性能編譯器,VTune™ 可視化性能分析器,高性能函數(shù)庫,多線程工具和應(yīng)用于高性能計算的集群工具及工具包等等。這些軟件產(chǎn)品能幫助用戶調(diào)優(yōu)高性能計算系統(tǒng)上運(yùn)行的中間件和應(yīng)用軟件。目前,英特爾這套軟件產(chǎn)品已被成功應(yīng)用于全球很多知名的軟件公司、HPC中心及實(shí)驗(yàn)室內(nèi),并且發(fā)揮著越來越重要的作用。
從上面對系統(tǒng)和應(yīng)用優(yōu)化的細(xì)節(jié)中,再加上此前IT號外文章對至強(qiáng)5500在HPC領(lǐng)域應(yīng)用價值的描述,我們都可以很清晰地看到英特爾為用戶所想,心系用戶實(shí)際應(yīng)用的創(chuàng)新理念,而在未來,這一理念還將驅(qū)動它為廣大HPC用戶帶來更多值得關(guān)注的專業(yè)化產(chǎn)品、技術(shù)和解決方案。在下一篇IT號外文章中,我們就將對英特爾未來相關(guān)的創(chuàng)新路線圖進(jìn)行詳細(xì)介紹,敬請關(guān)注。