• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CUDA的奇偶排序并行算法

      2015-12-08 09:04:42李幸剛
      山東工業(yè)技術 2015年23期
      關鍵詞:并行計算

      摘 要:本文介紹了基于CUDA的奇偶排序并行算法,并給出GPU代碼,分析了用CPU與GPU代碼實現(xiàn)的優(yōu)缺點,可以讓我們對并行計算技術有更深刻的學習和了解。

      關鍵詞:CUDA;奇偶排序;GPU;并行計算

      DOI:10.16640/j.cnki.37-1222/t.2015.23.238

      1 引言

      排序是指將一個無序的元素序列,通過一定的方式排列成以關鍵字有序的序列。目前排序算法有很多,有的能夠在GPU上實現(xiàn),比如樣本排序,有的則不能很好的在GPU上實現(xiàn),比如堆排序。奇偶排序就是一種非常適合在GPU上實現(xiàn)的排序方法。它是由冒泡算法改進而來,奇偶排序分為奇下標排序和偶下標排序,在一每輪排序過程中,各元素的操作與其他元素是互不影響的。

      2 相關概念

      并行計算(Parallel Computing),是同時使用多種計算資源進行計算問題的方法,能夠有效提高計算效率和計算機的處理能力。并行計算分為時間上的并行和空間上的并行兩種。時間上的并行類似于生產(chǎn)流水線,在同一時間啟動多個操作從而提高計算速度??臻g上的并行則是指利用多個處理器同時進行計算[1]。

      CUDA是NVIDIA公司最新推出的產(chǎn)品,通過CUDA平臺可以充分利用并行計算的優(yōu)勢來處理計算問題[2]。CUDA的GPU端語言采用C,所以對于開發(fā)者來說,使用起來更加簡單。CUDA可廣泛的應用在圖形學、生物、科學計算、地質(zhì)、物理模擬等需要大規(guī)模并行計算的領域。

      3 奇偶排序

      我們都知道冒泡排序是首先選擇數(shù)組中第一個索引中的元素,然后將該元素與它后面得元素進行逐一比較,如果它比后面的元素小,則兩個元素進行交換,否則不再進行比較。以此類推,選擇數(shù)組中各元素分別與后面元素進行比較,最終得到一個從大到小的有序序列。

      奇偶排序在冒泡算法的基礎上加以改進,每次在數(shù)組中進行兩趟掃描。第一趟掃描選擇所有的奇數(shù)項對a[i]和a[i+1],(i=1, 3, 5……)。如果a[i]大于a[i+1],則兩個元素位置交換。第二趟對所有的偶數(shù)項進行掃描,此時(i=2, 4,6……)。重復以上操作直到數(shù)組全部有序。奇偶排序和冒泡排序的時間復雜度都是O(N^2)[3]。

      4 代碼實現(xiàn)

      CPU版的奇偶排序代碼非常簡單,我們在此不在給出,奇偶排序算法的GPU實現(xiàn),代碼如下:

      5 總結(jié)

      通過上面GPU代碼我們可以看到,處理那些幾乎有序的數(shù)組,奇偶排序十分實用。當數(shù)組中元素是倒敘排列時是最壞情況。由于基于CUDA的GPU代碼需要先將數(shù)據(jù)拷貝到設備上進行計算,然后再拷貝回主機輸出,當數(shù)組中數(shù)據(jù)比較少時,會比CPU代碼消耗更多的時間,但是,當數(shù)據(jù)量比較大時,在多線程的并行計算方式會大大提高運算效率。

      參考文獻:

      [1] Adams J et al, The Fortran 90 Handbook.McGraw-Hill,1992.

      [2]Allan S J, Oldehoeft R . HEP SISAL: Parallel Functional Programming. Kowalik(Ed). Parallel MIMD Computation: HEP Supercomputers and Applications. MIT Press,1985.

      [3]陳國良.并行計算:結(jié)構(gòu)、算法、編程[B].北京:高等教育出版社,2003.

      作者簡介:李幸剛(1992—),河南平頂山人,軟件工程專業(yè)。endprint

      猜你喜歡
      并行計算
      基于Hadoop的民航日志分析系統(tǒng)及應用
      軟件導刊(2017年1期)2017-03-06 00:10:08
      基于自適應線程束的GPU并行粒子群優(yōu)化算法
      云計算中MapReduce分布式并行處理框架的研究與搭建
      矩陣向量相乘的并行算法分析
      并行硬件簡介
      不可壓NS方程的高效并行直接求解
      基于GPU的超聲場仿真成像平臺
      基于Matlab的遙感圖像IHS小波融合算法的并行化設計
      科技視界(2016年11期)2016-05-23 08:13:35
      大數(shù)據(jù)背景的IT平臺架構(gòu)探索
      科技視界(2015年30期)2015-10-22 11:44:33
      基于枚舉的并行排序與選擇算法設計
      墨竹工卡县| 宜君县| 桃园县| 巢湖市| 济源市| 荃湾区| 凤阳县| 会同县| 乌拉特前旗| 绍兴市| 辰溪县| 平和县| 巴东县| 高邮市| 滨海县| 田阳县| 临西县| 天峨县| 饶平县| 保山市| 平定县| 孝感市| 特克斯县| 社会| 萨嘎县| 柞水县| 都匀市| 台前县| 开封市| 建始县| 伊宁县| 改则县| 邓州市| 乐安县| 顺平县| 荣昌县| 衡南县| 新安县| 明溪县| 合水县| 高唐县|