基于Xeon Phi的超長序列比對算法設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時間:2021-01-01 18:33
基因是指控制生物性狀的遺傳信息,通常由DNA序列承載,可以視作基本遺傳單位;虻漠a(chǎn)物可以是蛋白質(zhì)和RNA,從而控制生物個體的性狀差異表現(xiàn)。而兩個基因的相似度有多高,演化上是否可能同源。歸結(jié)到計(jì)算上,就是如何找到兩個序列的最優(yōu)或近似最優(yōu)的比對。隨著人類基因組計(jì)劃的測序工作的完成,生物信息科學(xué)的研究重點(diǎn)放在了探明基因序列的功用上。而在高通量測序技術(shù)快速進(jìn)展的背景之下,生物數(shù)據(jù)呈現(xiàn)指數(shù)型增長。因此產(chǎn)生了對大量生物信息數(shù)據(jù)進(jìn)行高效準(zhǔn)確分析的需求;蛐蛄袥Q定了生物的性狀,查找出基因差異性對于人類克服疾病具有深遠(yuǎn)的意義。本文在Xeon Phi眾核架構(gòu)上,設(shè)計(jì)并實(shí)現(xiàn)了一個全新的超長序列比對算法SLPal。該算法的計(jì)算核心是基于位并行的BitPAI算法。在粗粒度上,為了實(shí)現(xiàn)多線程并行,我們將超大規(guī)模的矩陣進(jìn)行了劃分。在垂直和水平方向上分別進(jìn)行劃分,將矩陣分成了網(wǎng)格。然后通過Intel TBB并行編程庫構(gòu)建了有向無環(huán)圖模型來實(shí)現(xiàn)該網(wǎng)格中矩陣塊之間的并行。在細(xì)粒度上,我們用Xeon Phi上的指令集編寫了 Intrinsic指令。SLPal中的一些操作沒有對應(yīng)的向量化實(shí)現(xiàn),我們采用手動編寫函數(shù)來實(shí)現(xiàn)了...
【文章來源】:山東大學(xué)山東省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:59 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖3一2位向量刁擴(kuò)的計(jì)算實(shí)例
?山東大學(xué)碩士學(xué)位論文???CPU數(shù)量等優(yōu)勢,而且TBB?lián)碛胁⑿醒h(huán),并行排序,流的并行和并行容器,??以及可擴(kuò)展的內(nèi)存分配,動態(tài)任務(wù)調(diào)度器。所以最終本人選擇TBB來編寫本人??的程序。任務(wù)調(diào)度器是線程構(gòu)建模塊的核心組件,它是通過線程來提升性能的。??在TBB的任務(wù)調(diào)度中,一個任務(wù)作為一個基本計(jì)算單元,由調(diào)度器將線程與任??務(wù)結(jié)合在一起,并且將任務(wù)分派到物理線程進(jìn)行執(zhí)行。任務(wù)調(diào)度器擁有一個全??局線程池,進(jìn)行任務(wù)調(diào)度之前,需要初始化線程構(gòu)建模塊,然后任務(wù)調(diào)度器會??根據(jù)這個線程池自動管理任務(wù),將每個任務(wù)動態(tài)分配到壓力較小的物理線程上,??實(shí)現(xiàn)負(fù)載均衡。??
由于計(jì)算超長序列的全局序列比對,相當(dāng)于要計(jì)算一個MXN的動態(tài)規(guī)劃矩??陣,其中M和N分別為所對比的2個序列的長度。且M和N可能長為100M大小,??所以為了充分利用多線程資源,本人將所要計(jì)算的矩陣劃分為如圖3-6所示的??子矩陣,并且其中每一個子矩陣都是一個任務(wù)類的實(shí)現(xiàn),也就是SLPalTUe??類的實(shí)例,SLPalTile繼承自tbb::task類。并且task類交由TBB[46]任務(wù)管??理器task_schcdulcr_init進(jìn)行管理。根據(jù)前面說明的BitPAl算法可以得知,??計(jì)算每個單元格的數(shù)據(jù)依賴僅僅存在于上方和左側(cè)的單元格,所以task之間的??30??
本文編號:2951784
【文章來源】:山東大學(xué)山東省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:59 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖3一2位向量刁擴(kuò)的計(jì)算實(shí)例
?山東大學(xué)碩士學(xué)位論文???CPU數(shù)量等優(yōu)勢,而且TBB?lián)碛胁⑿醒h(huán),并行排序,流的并行和并行容器,??以及可擴(kuò)展的內(nèi)存分配,動態(tài)任務(wù)調(diào)度器。所以最終本人選擇TBB來編寫本人??的程序。任務(wù)調(diào)度器是線程構(gòu)建模塊的核心組件,它是通過線程來提升性能的。??在TBB的任務(wù)調(diào)度中,一個任務(wù)作為一個基本計(jì)算單元,由調(diào)度器將線程與任??務(wù)結(jié)合在一起,并且將任務(wù)分派到物理線程進(jìn)行執(zhí)行。任務(wù)調(diào)度器擁有一個全??局線程池,進(jìn)行任務(wù)調(diào)度之前,需要初始化線程構(gòu)建模塊,然后任務(wù)調(diào)度器會??根據(jù)這個線程池自動管理任務(wù),將每個任務(wù)動態(tài)分配到壓力較小的物理線程上,??實(shí)現(xiàn)負(fù)載均衡。??
由于計(jì)算超長序列的全局序列比對,相當(dāng)于要計(jì)算一個MXN的動態(tài)規(guī)劃矩??陣,其中M和N分別為所對比的2個序列的長度。且M和N可能長為100M大小,??所以為了充分利用多線程資源,本人將所要計(jì)算的矩陣劃分為如圖3-6所示的??子矩陣,并且其中每一個子矩陣都是一個任務(wù)類的實(shí)現(xiàn),也就是SLPalTUe??類的實(shí)例,SLPalTile繼承自tbb::task類。并且task類交由TBB[46]任務(wù)管??理器task_schcdulcr_init進(jìn)行管理。根據(jù)前面說明的BitPAl算法可以得知,??計(jì)算每個單元格的數(shù)據(jù)依賴僅僅存在于上方和左側(cè)的單元格,所以task之間的??30??
本文編號:2951784
本文鏈接:http://sikaile.net/projectlw/swxlw/2951784.html
最近更新
教材專著