研究背景
随着行业从单芯片处理器转向通用社区的多核处理器,开发技术以在应用程序中找到并暴露足够的并行性变得越来越重要。在文献中,已经做了大量研究来实现高性能并行计算。此外,一些编译器工具已被开发出来帮助程序员开发并行应用程序。然而,自动提取一般应用程序中的全部并行性仍然是一个具有挑战性的问题。在本文中,我们对聚类应用进行了案例研究,并手动并行化了两种流行的聚类算法:i)k均值和ii)均值漂移。选择聚类算法进行案例研究的动机如下。聚类算法处理大数据集,计算密集型。顺序实现非常低效。并且聚类算法的性质使它们非常适合并行实现。
研究主旨
本文主要探讨了在多核CPU架构下,如何有效并行化图像处理中的聚类算法,具体包括k均值算法和均值漂移算法。作者详细介绍了这两种算法的原理,并提出了针对多核环境的并行实现策略,通过实验证明了并行化后的算法能够显著提高处理速度,达到近线性的加速效果。研究指出,在多核环境下,通过合理设计,聚类算法可以充分利用硬件资源,大幅缩短计算时间。
研究特点
随着处理器芯片上的内核数量增加成为当前半导体行业的趋势(即Intel/AMD多核CPU,Nvidia GPU等),当前软件开发应利用这些多核平台以实现高性能。但在多处理器上开发并行软件是一项具有挑战性的任务,因为存在众所周知的问题,如死锁、负载平衡、缓存冲突等。在本文中,我们展示了为多核CPU上的图像处理开发并行软件的基本原理。我们研究并并行化了两种流行的聚类算法:i)k均值和ii)均值漂移。实验结果表明,这些算法的良好并行实现能够在多核处理器上实现接近线性的加速。