论文部分内容阅读
随着CPU的发展,利用多核CPU的并行性已经成为了一项主流技术。由于图形处理器(Graphic Processing Unit,GPU)所具备的强计算能力,使用GPU进行图形处理之外的通用计算也得到了广泛关注。与此同时,由于web应用愈发流行,web应用的客户端愈发复杂,web应用对于高计算能力产生了更大的需求。然而,作为使用最为广泛的web客户端编程语言,JavaScript无法利用当前GPU和多核CPU所具备的计算能力。因此,如何在web应用(尤其是客户端浏览器)中了利用现代GPU和多核CPU的计算能力就成为一个有待解决的问题。Web Computing Language (WebCL)的出现,为解决这一问题提供了可能性。本论文就使用WebCL并利用GPU计算能力对串行的计算密集型JavaScript应用进行加速开展了调查性的研究。本文将高级加密标准(Advanced EncryptionStandard,AES)和快速傅里叶变换(Fast Fourier Transform,FFT)作为应用进行了基于WebCL的并行实现。在实现过程中,本文对原始算法进行了分析,设计了并行化方法,并采取相应的优化方案对实现进行了优化。然后,本文对实现的性能进行了测试,将基于WebCL的并行实现与串行实现的性能进行了比较。此外,对性能也进行了分析,调查了性能开销的来源。最后,本文分析和讨论了在实际开发中使用WebCL时需要注意的一些重要事项。本文的工作展示了在实际开发中通过WebCL利用GPU和多核CPU的计算能力,进而获得优异计算性能的可行性。然而,尽管性能收益可观,但由于有大量的实际问题需要考虑和解决,实际开发基于WebCL的应用仍富有挑战性。不过,作为一个新兴的,使得web应用能够利用GPU和多核CPU计算能力的编程技术,WebCL极具潜力。有理由相信WebCL将在下一代web应用的开发中扮演重要角色。随着CPU的发展,利用多核CPU的并行性已经成为了一项主流技术。由于图形处理器(Graphic Processing Unit,GPU)所具备的强计算能力,使用GPU进行图形处理之外的通用计算也得到了广泛关注。与此同时,由于web应用愈发流行,web应用的客户端愈发复杂,web应用对于高计算能力产生了更大的需求。然而,作为使用最为广泛的web客户端编程语言,JavaScript无法利用当前GPU和多核CPU所具备的计算能力。因此,如何在web应用(尤其是客户端浏览器)中了利用现代GPU和多核CPU的计算能力就成为一个有待解决的问题。Web Computing Language (WebCL)的出现,为解决这一问题提供了可能性。本论文就使用WebCL并利用GPU计算能力对串行的计算密集型JavaScript应用进行加速开展了调查性的研究。本文将高级加密标准(Advanced EncryptionStandard,AES)和快速傅里叶变换(Fast Fourier Transform,FFT)作为应用进行了基于WebCL的并行实现。在实现过程中,本文对原始算法进行了分析,设计了并行化方法,并采取相应的优化方案对实现进行了优化。然后,本文对实现的性能进行了测试,将基于WebCL的并行实现与串行实现的性能进行了比较。此外,对性能也进行了分析,调查了性能开销的来源。最后,本文分析和讨论了在实际开发中使用WebCL时需要注意的一些重要事项。本文的工作展示了在实际开发中通过WebCL利用GPU和多核CPU的计算能力,进而获得优异计算性能的可行性。然而,尽管性能收益可观,但由于有大量的实际问题需要考虑和解决,实际开发基于WebCL的应用仍富有挑战性。不过,作为一个新兴的,使得web应用能够利用GPU和多核CPU计算能力的编程技术,WebCL极具潜力。有理由相信WebCL将在下一代web应用的开发中扮演重要角色。