基于多核的多線程算法并行優(yōu)化
發(fā)布時(shí)間:2020-05-26 20:18
【摘要】: 在多核處理器不斷普及的今天,并行軟件開發(fā)技術(shù)的加速發(fā)展已成為關(guān)鍵。多核處理器既促進(jìn)了并行軟件開發(fā)技術(shù)的發(fā)展,也依賴于并行軟件開發(fā)技術(shù)。但是軟件并行化的發(fā)展需要克服重重困難。當(dāng)今在使用的很大部分軟件還是串行思想開發(fā)的產(chǎn)物,我們需要從根本軟件開發(fā)理念上改變,進(jìn)行軟件并行化。目前已經(jīng)出現(xiàn)了多種并行編程模型,主要有共享存儲(chǔ)編程模型、消息傳遞模型和分布式存儲(chǔ)模型。多線程并行編程就基于共享存儲(chǔ)的編程模型。 矩陣相乘算法的重要性不言而喻,在很多科學(xué)計(jì)算和工程方面應(yīng)用極廣。因此,對(duì)矩陣相乘算法做了實(shí)驗(yàn),分別采用了Win32多線程API、OpenMP及C#多線程對(duì)其進(jìn)行實(shí)現(xiàn)。在此過程中,歸結(jié)了這幾種多線程編程方法的特性和優(yōu)缺點(diǎn)。Win32多線程API具有性能優(yōu),可以顯性操作線程的優(yōu)點(diǎn),但是實(shí)現(xiàn)相對(duì)復(fù)雜,對(duì)軟件開發(fā)人員要求高。OpenMP實(shí)現(xiàn)簡(jiǎn)單,適合于優(yōu)化循環(huán)。但是性能相對(duì)Win32多線程API稍微遜色。而C#在語言級(jí)提供了對(duì)多線程的支持,但是由于其基于虛擬機(jī)的機(jī)制導(dǎo)致其性能還不如前兩者,實(shí)現(xiàn)難度介于兩者之間,也可顯性操作線程。本實(shí)驗(yàn)結(jié)果有助于在開發(fā)時(shí)對(duì)編程方法的選擇。 排序算法是常用而且對(duì)其本身性能要求很高的算法。在前面實(shí)驗(yàn)研究的基礎(chǔ)上,提出了一種排序組合算法,并且對(duì)后半部分的歸并排序進(jìn)行了改進(jìn)。改進(jìn)的方法采用了多線程的思想,將原來單線程執(zhí)行的歸并過程進(jìn)化成可以同時(shí)執(zhí)行的兩個(gè)線程。兩個(gè)線程分別從已經(jīng)有序的兩個(gè)序列的最大值端和最小值端同時(shí)進(jìn)行比較,將相應(yīng)的結(jié)果放在新序列的相應(yīng)端。兩個(gè)線程都工作至新序列的中間為止,也達(dá)到了負(fù)載平衡的目的。該算法的實(shí)驗(yàn)采用前面實(shí)驗(yàn)分析結(jié)果中性能最優(yōu)的Win32 API多線程編程方法進(jìn)行實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果對(duì)比表明并行改進(jìn)后的算法性能提升顯著,并且隨著數(shù)據(jù)規(guī)模的擴(kuò)大,提升比例穩(wěn)定升高。
【學(xué)位授予單位】:鄭州大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2010
【分類號(hào)】:TP332
本文編號(hào):2682354
【學(xué)位授予單位】:鄭州大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2010
【分類號(hào)】:TP332
【參考文獻(xiàn)】
相關(guān)期刊論文 前1條
1 趙榮彩,唐志敏,張兆慶,GuangR.Gao;低功耗多線程編譯優(yōu)化技術(shù)[J];軟件學(xué)報(bào);2002年06期
,本文編號(hào):2682354
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2682354.html
最近更新
教材專著