论文摘要
随着2005年,Intel发布了基于x86的桌面双核处理器,多核处理器开始走入寻常百姓家。处理器的不断发展,由纯粹的频率提升,逐渐转到多核运算、并行执行的方向上。所谓多核处理器就是将多个运算核心集成在一个处理器上,在并行性优势的提升下,相比单核它能够以更低的频率处理更高的工作负载。因此能够在提升处理器性能的情况下降低功耗,减小散热问题,而且生产成本更加低廉。处理器发展到多核阶段,传统的串行模型与并行架构之间的矛盾越发明显。这种转变对程序员而言不像处理器时钟频率的变化那样透明,如果编写的程序没有针对多核的特点来设计,就不能完全获得多核处理器带来的性能提升。多核时代的到来,给传统的串行编程模型带来了巨大的冲击。为了充分利用多核性能,就需要设计一种并行编程模型来编写更高效的应用程序。另一方面,多媒体技术和网络技术正迅速的发展和普及。从家用电脑,到移动笔记本电脑,甚至手机、PDA等嵌入式领域都存在着大量的多媒体网络应用。像音视频编解码,网络数据的传输和分析等,它们广泛的应用对性能的提升有了更高的要求。这类应用主要以一种“流”(streaming)的形式存在,数据量大,对实时性要求高,计算处理具有高度可并行性。这些特点在传统的串行架构上很难再做进一步的优化,然而多核的并行化平台带来了新的机遇。如何在多核环境下更好的发挥处理器的性能优势,满足多媒体和网络应用的需求就成了当前面临的主要困难。为了解决这个问题,本文提出了一种新的并行编程模型——基于多核架构,应用于网络和多媒体的ComponentC StreamingLanguage。这种模型将单一程序划分为可并行执行的多个任务,分配到多个核上,通过优化调整达到负载平衡,更加有效利用多核处理器的每个计算核心,从而得到性能的提升。本文的主要贡献如下:●提出了一种基于多核,应用于多媒体和网络的并行编程模型。●实现了一个针对多媒体和网络程序的节点化上层应用编程模型。●实现了一个针对多核处理器特点的底层架构编程模型。●提出了多节点程序在多核处理器上划分调度优化策略。