面向醫(yī)學(xué)圖像的多線程并行計算方法
【專利摘要】面向醫(yī)學(xué)圖像的多線程并行計算方法,涉及醫(yī)學(xué)圖像處理方法。是一種把多線程思想及編程方法應(yīng)用于醫(yī)學(xué)圖像的圖像處理優(yōu)化方法。在支持超線程或者多核技術(shù)的處理器上,利用處理器上的硬件資源用軟件進行多線程編程。首先將需要處理的醫(yī)學(xué)圖像劃分為可獨立處理的圖像塊并對圖像塊分組,然后利用多線程技術(shù)同一時刻在不同處理器的不同內(nèi)核中同時運行多個線程,之后讓每個線程分別執(zhí)行由原圖像分出來的相對平均工作量的圖像塊分組,對原圖像處理任務(wù)集進行并行處理,直到所有線程處理完成之后,最后將處理結(jié)果進行匯總后輸出。整個多線程并行計算可以提高圖像處理的執(zhí)行效率,達(dá)到加速計算的目的。
【專利說明】面向醫(yī)學(xué)圖像的多線程并行計算方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及醫(yī)學(xué)圖像處理方法,尤其是涉及一種面向醫(yī)學(xué)圖像的多線程并行計算方法。
【背景技術(shù)】
[0002]醫(yī)學(xué)圖像(包括磁共振圖像、計算機斷層掃描圖像和超聲圖像等)處理在醫(yī)學(xué)影像科學(xué)和臨床實踐中有著重要作用。隨著圖像處理技術(shù)的發(fā)展和人們對醫(yī)療健康的日益關(guān)注,希望醫(yī)學(xué)圖像處理的運行時間降低。超線程和多核技術(shù)的出現(xiàn),為加速醫(yī)學(xué)圖像處理提供了可能。
[0003]1971年,英特爾推出的全球第一顆通用型微處理器4004,由2300個晶體管構(gòu)成。當(dāng)時戈登摩爾就提出后來被業(yè)界奉為信條的“摩爾定律”——每過18個月,芯片上可以集成的晶體管數(shù)目將增加一倍。因為在一塊芯片上集成的晶體管數(shù)目越多,意味著運算速度即主頻就更快。然而,2005年,當(dāng)主頻接近4吉赫時,英特爾和美國先進微電子器件公司發(fā)現(xiàn),速度也會遇到自己的極限:那就是單純的主頻提升,已經(jīng)無法明顯提升系統(tǒng)整體性能。后來便相繼出現(xiàn)了超線程技術(shù)和多核處理器技術(shù)。2002年2月,英特爾公司在其推出的代號為Prestonia的130nm新款至強處理器中首次采用了超線程技術(shù)。超線程技術(shù)利用特殊的硬件指令,把兩個邏輯內(nèi)核模擬成兩個物理芯片,讓單個處理器核都能使用線程級并行計算,進而減少中央處理器的閑置時間,提高中央處理器的運行效率,同時也兼容多線程操作系統(tǒng)和軟件。與此同時,國際商業(yè)機器公司于2001年10月發(fā)布了世界上首款多核處理器一名為Power4的雙核精簡指令集處理器,它將兩個64位的Power個人電腦處理器集成在一顆芯片上。對于一個處理器擁有多微處理器核的多核處理器,可以將兩個或更多的獨立處理器核封裝在一個集成電路芯片中或者在一塊主板上集成多個芯片。超線程和多核處理器技術(shù)發(fā)展至今,已經(jīng)廣泛使用于普通個人電腦機上。因此,充分利用我們可用的計算機,設(shè)計多線程并發(fā)執(zhí)行程序,提高計算機程序效率和資源利用率顯得尤其重要。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供基于超線程和多核處理器技術(shù)的面向醫(yī)學(xué)圖像的多線程并行計算方法。
[0005]本發(fā)明包括以下步驟:
[0006]I)將源圖像分解,分成可以獨立處理的至少2個小圖像塊,達(dá)到把原圖像的處理劃分成一個大小為Q的子任務(wù)集合;
[0007]2)使用C語言或者開放式多處理(Open Mult1-Processing, OpenMP)語言中的多線程編程技術(shù)創(chuàng)建N個線程,然后把由步驟I)分解得到的Q個子任務(wù)集合均分給N個線程去執(zhí)行,每個線程執(zhí)行Q除以N個子任務(wù)個,當(dāng)Q不能整除N時,最后一個線程可能例外,執(zhí)行Q對N取余個子任務(wù),其中Q為總?cè)蝿?wù)數(shù),N為程序創(chuàng)建的線程數(shù);
[0008]3)執(zhí)行過程中若存在對所有圖像塊的匯總操作,可使用如下兩個方法進行多線程同步:
[0009](I)使用臨界區(qū)等多線程加鎖技術(shù),實現(xiàn)各個線程的資源同步進行匯總;
[0010](2)保存線程處理結(jié)果數(shù)據(jù)于父進程中,待所有進程結(jié)束之后再進行匯總。
[0011]在步驟I)中,所述將源圖像分解,分成可以獨立處理的至少2個小圖像塊的具體方法可為:首先將源圖像進行邊界擴展,對擴展后的源圖像以每個像素為起點,將源圖像分成小圖像塊,達(dá)到把原圖像的處理劃分成一個大小為Q的子任務(wù)集合。
[0012]為了減少線程創(chuàng)建、管理及同步過程中所消耗的中央處理器資源,設(shè)計和編寫多線程處理方法時應(yīng)盡量避免資源同步及線程多批創(chuàng)建情況的發(fā)生。
[0013]本發(fā)明在醫(yī)學(xué)圖像(包括磁共振圖像、計算機斷層掃描圖像和超聲圖像等)處理中充分利用中央處理器的超線程和多內(nèi)核,實現(xiàn)醫(yī)學(xué)圖像處理中線程級的并行計算,將具有獨立性的子任務(wù)分配到多個線程中并發(fā)執(zhí)行,減少醫(yī)學(xué)圖像處理程序的執(zhí)行時間,提高程序運行效率,達(dá)到優(yōu)化醫(yī)學(xué)圖像處理程序的目標(biāo)。
【專利附圖】
【附圖說明】
[0014]圖1為串行任務(wù)集的處理流程示意圖。
[0015]圖2為并行任務(wù)集的處理流程示意圖。
[0016]圖3為多線程并行計算的線程個數(shù)與程序執(zhí)行時間曲線圖。在圖3中,曲線的第一個點為串行程序處理所需的時間,實驗條件為Wind0ws7操作系統(tǒng)、4核處理器、8個超線程、主頻3.4吉赫茲、執(zhí)行基于非局部圖像算子的磁共振圖像處理,其參數(shù)情況如表3。
【具體實施方式】
[0017]本發(fā)明實施例包括以下步驟:
[0018]I)將源圖像分解,分成可以獨立處理的多個小圖像塊(例如表I所示,首先將64x64圖像進行邊界擴展,對擴展后的圖像以每個像素為起點,將源圖像分成4096個8x8的小圖像塊),達(dá)到把原圖像的處理劃分成了一個大小為Q的子任務(wù)集合;
[0019]表I
[0020]
【權(quán)利要求】
1.面向醫(yī)學(xué)圖像的多線程并行計算方法,其特征在于包括以下步驟: 1)將源圖像分解,分成可以獨立處理的至少2個小圖像塊,達(dá)到把原圖像的處理劃分成一個大小為Q的子任務(wù)集合; 2)使用C語言或者開放式多處理(OpenMult1-Processing, OpenMP)語言中的多線程編程技術(shù)創(chuàng)建N個線程,然后把由步驟I)分解得到的Q個子任務(wù)集合均分給N個線程去執(zhí)行,每個線程執(zhí)行Q除以N個子任務(wù)個,當(dāng)Q不能整除N時,最后一個線程可能例外,執(zhí)行Q對N取余個子任務(wù),其中Q為總?cè)蝿?wù)數(shù),N為程序創(chuàng)建的線程數(shù); 3)執(zhí)行過程中若存在對所有圖像塊的匯總操作,使用如下兩個方法進行多線程同步: (1)使用臨界區(qū)等多線程加鎖技術(shù),實現(xiàn)各個線程的資源同步進行匯總; (2)保存線程處理結(jié)果數(shù)據(jù)于父進程中,待所有進程結(jié)束之后再進行匯總。
2.如權(quán)利要求1所述面向醫(yī)學(xué)圖像的多線程并行計算方法,其特征在于在步驟I)中,所述將源圖像分解,分成可以獨立處理的至少2個小圖像塊的具體方法為:首先將源圖像進行邊界擴展,對擴展后的源圖像以每個像素為起點,將源圖像分成小圖像塊,達(dá)到把原圖像的處理劃分成一個大小為Q的子任務(wù)集合。
【文檔編號】G06F9/38GK103631568SQ201310710668
【公開日】2014年3月12日 申請日期:2013年12月20日 優(yōu)先權(quán)日:2013年12月20日
【發(fā)明者】屈小波, 沈前進, 李淇越, 郭迪, 陳忠 申請人:廈門大學(xué)