嵌入式学习小组
直播中

唐红菊

7年用户 146经验值
私信 关注

请问多核系统设计的标准是什么?

实施多核系统的最大挑战是什么?对这个问题的回答当然是见仁见智,但是,如果您询问大多数业界学者,他们会说是编程。

回帖(2)

陈桂英

2019-11-11 16:00:03
虽然很多公司和研究人员都在努力解决多核的编程问题,但是也有大量处理器供应商正在力争改进其架构,以应对不断增长的内核数目。例如,单核设备的数据总线只有“一张吃饭的嘴”,添加第二个内核后,总线负载就翻倍了。每添加一个内核,面临的总线挑战就呈线性增长。当内核数达到 80、500、1000或更多时,就令人难以想象了。
  
但是也有好消息,处理器供应商(如ARM)正在改进其架构,以应对更高的数据吞吐率,这反映在所谓的互连技术中。同时还在实施其他技术,以应对不断增长的内核数目。但是,业界对这些新型多核架构的性能如何进行定量测量呢?如何确定可扩展性?系统设计人员如何选择最优的处理器?
  
在最简单的层面上,设计用于测试多核平台的基准必须可扩展,以便支持从一个内核到“无限”多个内核的情形。要确定多核设备的性能开始背离线性预期、进入下坡路的那个点,这是有意思的。
  
多核基准分类基本上有两个最高层次:共享内存和以消息为基础。共享内存方法依赖基于线程 API(如 POSIX)的语义。以消息为基础的方法适用于非对称异构多核解决方案。
  
EEMBC(嵌入式微处理器基准协会)认为这两种方法都可以有效支持必须处理一致性和分布式内存架构的嵌入式应用程序。
  
要衡量处理性能,可以利用速度测量来确定处理器完成一项任务的速度;也可以测量处理器在一定时间内能完成的任务数量,称为吞吐量或速率测量。
  
在最基本层面上检查一下共享内存多核基准,一类测试是对单个基准进行独立并行执行。这种速率测量基本上是利用相同的输入数据集,同时运行同一基准的多个实例,经过多个线程,所有线程运行完毕后,测量时间。这与S P E C速率基准(如 SPECint_rate2000)实施的传统吞吐量测量技术相同。
  
举报

刘丽艳

2019-11-11 16:00:06
使用该方法的最大优势之一就是它采用简单的方法,易于说明和演示。该方法还可以轻松扩展至任意数目的并发执行上下文。一般来说,上下文数目与机器上的 CPU 数目相同,但这不是要求。这样可以近似一种粗粒度并行方法,该方法有时在现实应用中会使用(例如多Vo I P通道)。但是,每个上下文使用相同的输入数据集是不现实的。
  
不仅如此,使用相同数据集还会使处理器L2缓存和内存总线上的效果降到最低并无法测试。
  
EEMBC认为此方法只能测量单个内核的效率和处理器的总线带宽。此方法并不测量真正的多核性能,它是在内核之间建立某种形式的通信、同步和共享内存。
  
并且此方法不将多流分解或任何流之间的同步考虑作为测试结果的一部分。如果基准和工作负载不是设计用于多任务环境,此方法将很难反映这些算法在多任务系统中的实际使用情况。
  
换言之,由于处理器/线程之间没有或只有很少交互,此方法可以更有效地评测台式系统。例如,它可以表示以下情形:
  
浏览器运行的同时,还在播放声音、编译程序、检查病毒、为图片/文档编索引,以及其他任务。
  
测试多核可扩展性
  
对上述方法的一项改进是让每个线程上下文以唯一的数据集运行。这样可以反映更真实的情况,例如多Vo I P通道的处理,其中每个通道接收不同的输入数据。
  
从系统级别基准观点来看,此方法的价值在于它可以确保提升内存活动(如L2缓存、内存总线)。此方法还可显示解决方案在可扩展的数据输入基础上的扩展能力。
  
换言之,要确定增加数据输入个数时性能开始下降的那个点,是有意义的。制定此类基准测试时,最大的挑战是:代码对于线程必须是安全的,才能让多个线程同时执行。特别地,它必须满足多个线程访问相同共享数据的需求,以及在任一给定时间,某一共享数据只由一个线程访问的需求,同时不降低要求的性能吞吐量。
  
制定可同时启动多个项目的测试,对数据和代码都执行并发,可进一步扩展上述方法。这可显示一种解决方案对于通用处理的可扩展性。举例来说,考虑执行MPEG decode(x),后跟 MPEGe n c o d e(x),类似机顶盒应用程序中的步骤,其中,会接收卫星信号、进行解码并编码成为另一种信号存入硬盘。作为基准评测,这需要上下文之间的同步以及确定评测何时完成的方法。
  
另一种称为任务分解(或算法并行)的方法允许多个线程合作实现统一的目标,可以显示处理器支持细粒度并行的能力。例如线程中M P E G解码算法的分解,其中每个处理一项不同的工作负载。
  
由ARM的John Goodacre领导的嵌入式微处理器基准协会(EEMBC)正在着手研究一套非常完整的新基准,它将针对多处理系统、多核处理器和多线程处理器。这些基准不仅测试系统级别的功能(即操作系统支持、内存性能),还将测试互连能力以及片上网络(N o C)。换言之,这些基准将审视“整个产品包”。
 
EEMBC的多核基准软件将开始支持共享内存对称多核处理器,并利用基于线程的A P I建立通用编程模型。这些基准的目标是上述三种并发形式,包括任务分解、多数据流处理和多工作负载处理。
  
嵌入式行业好像已经非常认可多核技术,但是其性能之间的差距仍在增长。即将推出的行业标准基准将显示多核处理器并行执行多个上下文的效率,并有助于推动处理器随嵌入式细分市场并行资源的发展,同时提供中立的方法,供系统开发人员比较相互竞争的处理器。

http://article.ednchina.com/Embeded/200709140908141.htm
举报

更多回帖

发帖
×
20
完善资料,
赚取积分