CPU-GPU协作:并行两列表算法解决子集和问题的新策略

0 下载量 159 浏览量 更新于2024-08-26 收藏 242KB PDF 举报
"ANovelCPU-GPUCooperativeImplementationofA ParallelTwo-ListAlgorithmfortheSubset-SumProblem LanjunWan, KenliLi, JingLiu, KeqinLi 子集和问题,又称为背包问题,是计算复杂性理论中的一个经典难题,属于NP完全类别。为了解决这个问题,研究者已经提出了多种并行算法,以在可接受的时间内求解。这些算法中的一部分已经被移植到图形处理单元(GPU)上,利用其强大的并行计算能力。然而,当前的GPU实现存在一个问题,即在GPU执行任务时,往往只有一个CPU核心用于协调工作,导致其他CPU核心未被充分利用,从而浪费了宝贵的计算资源。 本论文提出了一种创新的CPU-GPU协同计算方法,用于并行双列表算法,旨在更高效地解决子集和问题。在异构CPU-GPU系统中,这种新的实现方式可以充分调动所有可用的CPU和GPU资源,避免资源闲置。通过建立最佳任务分配模型,研究者确定了CPU和GPU之间的最优任务分配比例,以实现两者间的高效协作。 实验在不同的硬件平台上进行,结果显示,采用CPU-GPU协作实现的并行双列表算法相对于最佳顺序实现,加速因子达到了9.2,这意味着其性能提升了96.3%。相较于仅优化的CPU实现,该方法提升了25.7%的性能。这些改进表明,这种新策略能够充分利用系统中的并行计算资源,显著提高问题求解的速度。 在实际应用中,子集和问题广泛存在于组合优化、密码学、数据压缩等多个领域。因此,提高子集和问题的求解效率对于提升这些领域的计算性能至关重要。CPU-GPU协同计算的并行双列表算法提供了一种有效途径,不仅优化了计算资源的使用,还降低了计算时间,这对于需要快速处理大量子集和问题的场景具有重要意义。 总结来说,这篇论文贡献了一种新的并行算法实现策略,通过CPU-GPU协同计算解决了子集和问题在传统实现中资源利用率低下的问题。通过实验验证,这种方法能够显著提高算法的运行效率,对于未来设计和优化类似复杂问题的并行计算方案提供了有价值的参考。"