sequential-vs-parallel-sort:C ++中实现的顺序排序算法与CUDA中实现的并行排序算法之间的比较研究,这是硕士学位论文的一部分-源码

上传者: 42148053 | 上传时间: 2021-08-26 10:15:00 | 文件大小: 123KB | 文件类型: ZIP
C++
信息 作为硕士论文的一部分,对C ++中实现的顺序排序算法与CUDA中实现的并行排序算法之间的比较进行了研究。 我们实现了七个算法:双音排序,多步双音排序,自适应双音排序,合并排序,快速排序,基数排序和样本排序。 顺序算法是在使用C ++的CPU上实现的,而并行算法是在使用CUDA平台的GPU上实现的。 我们改进了上述实现,并采用了它们,以便能够对任意长度的输入序列进行排序。 我们在六个不同的输入分布上比较了算法,这些分布包括32位数字,32位键值对,64位数字和64位键值对。 结果表明,基数排序是最快的顺序排序算法,而基数排序和合并排序是最快的并行排序算法(取决于输入分布)。 与顺序实现相比,通过并行实现,我们最多可实现157倍的加速。 作者:DarkoBožidar 导师:TomažDobravec博士 资料下载 结果: : 硕士学位论文(斯洛文尼亚版) : : usp

文件下载

资源详情

[{"title":"( 87 个子文件 123KB ) sequential-vs-parallel-sort:C ++中实现的顺序排序算法与CUDA中实现的并行排序算法之间的比较研究,这是硕士学位论文的一部分-源码","children":[{"title":"sequential-vs-parallel-sort-master","children":[{"title":"Utils","children":[{"title":"generator.cpp <span style='color:#111;'> 4.81KB </span>","children":null,"spread":false},{"title":"kernels_utils.h <span style='color:#111;'> 5.66KB </span>","children":null,"spread":false},{"title":"host.h <span style='color:#111;'> 804B </span>","children":null,"spread":false},{"title":"cuda.h <span style='color:#111;'> 698B </span>","children":null,"spread":false},{"title":"kernels_classes.h <span style='color:#111;'> 2.19KB </span>","children":null,"spread":false},{"title":"file.h <span style='color:#111;'> 563B </span>","children":null,"spread":false},{"title":"host.cpp <span style='color:#111;'> 4.39KB </span>","children":null,"spread":false},{"title":"file.cpp <span style='color:#111;'> 1.70KB </span>","children":null,"spread":false},{"title":"generator.h <span style='color:#111;'> 467B </span>","children":null,"spread":false},{"title":"sort_correct.cpp <span style='color:#111;'> 3.06KB </span>","children":null,"spread":false},{"title":"cuda.cpp <span style='color:#111;'> 1.67KB </span>","children":null,"spread":false},{"title":"sort_correct.h <span style='color:#111;'> 345B </span>","children":null,"spread":false},{"title":"kernels.h <span style='color:#111;'> 883B </span>","children":null,"spread":false},{"title":"sort_interface.h <span style='color:#111;'> 8.67KB </span>","children":null,"spread":false},{"title":"data_types_common.h <span style='color:#111;'> 1.04KB </span>","children":null,"spread":false},{"title":"constants_common.h <span style='color:#111;'> 423B </span>","children":null,"spread":false}],"spread":false},{"title":".gitignore <span style='color:#111;'> 190B </span>","children":null,"spread":false},{"title":"Quicksort","children":[{"title":"data_types.cpp <span style='color:#111;'> 2.64KB </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 3.09KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"sequential.h <span style='color:#111;'> 5.69KB </span>","children":null,"spread":false},{"title":"parallel.h <span style='color:#111;'> 21.11KB </span>","children":null,"spread":false}],"spread":true},{"title":"data_types.h <span style='color:#111;'> 3.41KB </span>","children":null,"spread":false},{"title":"Kernels","children":[{"title":"common.h <span style='color:#111;'> 2.63KB </span>","children":null,"spread":false},{"title":"key_only_utils.h <span style='color:#111;'> 1.85KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 11.29KB </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 8.06KB </span>","children":null,"spread":false},{"title":"common_utils.h <span style='color:#111;'> 7.00KB </span>","children":null,"spread":false},{"title":"key_value_utils.h <span style='color:#111;'> 2.17KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"MergeSort","children":[{"title":"compile.cpp <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 1.70KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"sequential.h <span style='color:#111;'> 8.78KB </span>","children":null,"spread":false},{"title":"parallel.h <span style='color:#111;'> 17.71KB </span>","children":null,"spread":false}],"spread":true},{"title":"Kernels","children":[{"title":"common.h <span style='color:#111;'> 3.80KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 6.37KB </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 5.04KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Main","children":[{"title":"test_sort.cpp <span style='color:#111;'> 9.48KB </span>","children":null,"spread":false},{"title":"main.cu <span style='color:#111;'> 2.98KB </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 1.40KB </span>","children":null,"spread":false},{"title":"test_sort.h <span style='color:#111;'> 356B </span>","children":null,"spread":false}],"spread":true},{"title":"RadixSort","children":[{"title":"compile.cpp <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 2.59KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"sequential.h <span style='color:#111;'> 6.77KB </span>","children":null,"spread":false},{"title":"parallel.h <span style='color:#111;'> 15.88KB </span>","children":null,"spread":false}],"spread":true},{"title":"Kernels","children":[{"title":"common.h <span style='color:#111;'> 3.10KB </span>","children":null,"spread":false},{"title":"key_only_utils.h <span style='color:#111;'> 2.35KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 8.11KB </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 6.92KB </span>","children":null,"spread":false},{"title":"common_utils.h <span style='color:#111;'> 608B </span>","children":null,"spread":false},{"title":"key_value_utils.h <span style='color:#111;'> 2.36KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Readme.md <span style='color:#111;'> 4.89KB </span>","children":null,"spread":false},{"title":"BitonicSortMultistep","children":[{"title":"compile.cpp <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 2.74KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"parallel.h <span style='color:#111;'> 8.94KB </span>","children":null,"spread":false}],"spread":true},{"title":"Kernels","children":[{"title":"key_only_utils.h <span style='color:#111;'> 15.40KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 6.93KB </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 6.61KB </span>","children":null,"spread":false},{"title":"common_utils.h <span style='color:#111;'> 892B </span>","children":null,"spread":false},{"title":"key_value_utils.h <span style='color:#111;'> 14.76KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"BitonicSort","children":[{"title":"compile.cpp <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 2.04KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"sequential.h <span style='color:#111;'> 3.33KB </span>","children":null,"spread":false},{"title":"parallel.h <span style='color:#111;'> 9.45KB </span>","children":null,"spread":false}],"spread":true},{"title":"Kernels","children":[{"title":"key_only_utils.h <span style='color:#111;'> 4.76KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 1.60KB </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 1.54KB </span>","children":null,"spread":false},{"title":"key_value_utils.h <span style='color:#111;'> 5.32KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"BitonicSortAdaptive","children":[{"title":"compile.cpp <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 2.91KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"sequential.h <span style='color:#111;'> 13.37KB </span>","children":null,"spread":false},{"title":"parallel.h <span style='color:#111;'> 17.45KB </span>","children":null,"spread":false}],"spread":true},{"title":"data_types.h <span style='color:#111;'> 1.23KB </span>","children":null,"spread":false},{"title":"Kernels","children":[{"title":"common.h <span style='color:#111;'> 4.34KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 4.69KB </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 3.85KB </span>","children":null,"spread":false},{"title":"common_utils.h <span style='color:#111;'> 5.17KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"SampleSort","children":[{"title":"compile.cpp <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"constants.h <span style='color:#111;'> 4.45KB </span>","children":null,"spread":false},{"title":"Sort","children":[{"title":"sequential.h <span style='color:#111;'> 12.32KB </span>","children":null,"spread":false},{"title":"parallel.h <span style='color:#111;'> 20.89KB </span>","children":null,"spread":false}],"spread":true},{"title":"Kernels","children":[{"title":"common.h <span style='color:#111;'> 6.38KB </span>","children":null,"spread":false},{"title":"key_value.h <span style='color:#111;'> 941B </span>","children":null,"spread":false},{"title":"key_only.h <span style='color:#111;'> 922B </span>","children":null,"spread":false},{"title":"common_utils.h <span style='color:#111;'> 1.16KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"GenerateStatistics","children":[{"title":"statistics.py <span style='color:#111;'> 4.02KB </span>","children":null,"spread":false},{"title":"constants.py <span style='color:#111;'> 1.52KB </span>","children":null,"spread":false},{"title":"utils.py <span style='color:#111;'> 1.37KB </span>","children":null,"spread":false},{"title":"main.py <span style='color:#111;'> 1.36KB </span>","children":null,"spread":false}],"spread":true}],"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明