BWA運行中,CPI很高,結(jié)合CPU的利用率和CPI的數(shù)值,可以看出BWA并不是浮點運算密集型應(yīng)用,這是由BWA的算法決定,BWA通過B-W轉(zhuǎn)換將基因組序列按一定規(guī)則壓縮并建立索引,再通過查找和回溯來定位讀段,BWA主要進行查收,匹配,這些操作都不是浮點型的操作,因此BWA不是一個浮點密集型的應(yīng)用。
圖:浪潮天眼監(jiān)測內(nèi)存容量、內(nèi)存帶寬使用情況
BWA運行中,單節(jié)點運行,內(nèi)存帶寬也是周期性變化,和CPU利用率表現(xiàn)一致,每10s內(nèi)存帶寬出現(xiàn)一次峰值。內(nèi)存容量逐漸增大,這是由于運行初始階段需要將數(shù)據(jù)寫進內(nèi)存。本算例內(nèi)存占用45GB,BWA的內(nèi)存需求,和算例規(guī)模密切相關(guān),如reads長度,reads大小等。經(jīng)過測試統(tǒng)計,內(nèi)存需求基本是輸入的待比對序列大小的5-6倍。
圖:浪潮天眼監(jiān)測磁盤讀寫使用情況
BWA運行中,單節(jié)點運行,在初始運行時要讀入輸入文件,磁盤讀帶寬也是和算例的大小是相關(guān)聯(lián)的,本算例的最大讀帶寬340MB/s;磁盤寫也是呈現(xiàn)階段性,最高峰220MB/s。
整體剖析
為更加詳細分析BWA的應(yīng)用特征,我們用取一個時間段的CPU利用率、內(nèi)存帶寬、磁盤讀寫進行分析,如下:
在同一時間點(5-7s),在該時間段時CPU利用率較低,IDLE上升,此時內(nèi)存帶寬也隨之降低;而在此時,我們可以看出磁盤的讀達到350MB/s;可以說明是由于此時刻磁盤讀數(shù)據(jù)造成CPU利用率以及內(nèi)存帶寬的下降;當數(shù)據(jù)讀完成后,讀帶寬下降,CPU利用率和內(nèi)存帶寬增高,如此呈現(xiàn)出周期性的變化。
特征總結(jié)
序列比對應(yīng)用BWA的CPU利用率上下波動,內(nèi)存容量和算例密切相關(guān),整體內(nèi)存容量需求適中;磁盤壓力較大,其實階段大規(guī)模讀入輸入文件,每過一段時間有一次較大讀操作,這是由于BWA的代碼中指定,每過一段時間,要讀入1000個reads。
基因計算行業(yè)特征
在基因計算中還涵蓋其他資源占用較多的應(yīng)用,我們不能在此一一列出使用TEYE監(jiān)控的數(shù)據(jù),我們經(jīng)過長期的積累,通過信號圖的方式總結(jié)應(yīng)用的特點,下面列出BWA和序列拼接應(yīng)用VELVET的資源使用情況,其中信號強度越大代表在改方面的資源占用越多。VELVET應(yīng)用在內(nèi)存容量和內(nèi)存帶寬方面都有非常大的需求,因此在資源配置方面一定要綜合考慮各方面的需求。
基因計算集群配置方案建議
根據(jù)以上基因測序軟件的普遍特點,我們也給出了如下的集群配置建議:
(1)基因比對、拼接等計算非浮點密集型計算應(yīng)用,CPU利用率、idle%呈現(xiàn)規(guī)律性交替變化,并且程序起始階段CPU利用率低,主要進行IO處理,高主頻可加快進度,雙路節(jié)點配置Intel E5-2680V4是個不錯的選擇;
(2)內(nèi)存帶寬隨CPU利用率交替變化并且峰值并不高,浪潮NX5440M4單節(jié)點配足8根DDR4 2400MHz內(nèi)存提供153.6GB/s的帶寬可充分保障內(nèi)存帶寬需求;內(nèi)存容量需求較大,基本上是輸入序列大小的5-6倍,單節(jié)點搭配8條16GB或32GB內(nèi)存即可滿足中小規(guī)模算例需求;對于大規(guī)模的基因拼接、比對計算,內(nèi)存容量建議配置在1-2TB以上,浪潮大內(nèi)存節(jié)點TS860G3最大可配至12TB內(nèi)存,可充分保障計算需求。
(3)網(wǎng)絡(luò)壓力較低,僅在讀寫IO時涉及到較多網(wǎng)絡(luò)傳輸,普通以太萬兆即可滿足網(wǎng)絡(luò)帶寬需求,選擇IB網(wǎng)絡(luò)或Intel OPA網(wǎng)絡(luò)也會在一定程度上降低延遲,提升效率。
(4)存儲讀寫壓力適中,磁盤讀寫均呈現(xiàn)階段性,如本測試案例,中小規(guī)模算例存儲讀寫峰值帶寬均在500MB/s以下,選用浪潮存儲服務(wù)器NF5460M4即可滿足需求;大規(guī)模算例如人體全基因組比對、拼接等,在程序初始階段輸入文件磁盤讀取、計算結(jié)果磁盤寫階段對存儲的帶寬壓力會比較大,此時建議選擇浪潮AS13000或浪潮Tstor2000并行文件存儲系統(tǒng),可提供GB/s以上的帶寬,更好的應(yīng)對存儲壓力。