简体版  |  繁体版   推荐信息: 阅读排行 | 滚动 | 微软SOA高峰会 | 中型企业创新社区 | 随心所欲发新闻
服务器

理论探讨:聚焦线程级并行设计(三)

出处:天极网 作者:东缘 2005-11-10 13:09 评论
字体大小: | |
让我们从最核心的处理器设计思路层面来解构一下多核处理器引入的线程级并行处理(Thread Leval Parallelism)技术。

  接上文

  操作系统调度与优化

  让每个芯片拥有多个内核和每个内核拥有多个线程肯定将影响操作系统的设计。同一个芯片或者CPU上面的两个线程能够以更快的速度同步运行,这在某些方面是有帮助的。然而,在同一时间有更多的线程在运行(也许每个线程运行的速度都很慢),这些线程运行速度减缓和停止的机会就会增加。采用细粒度锁或者迄今为止更好的细粒度锁技术的免锁定数据结构和代码在这里是有帮助的。当每个内核有多个线程的时候,一个因锁定而减缓速度的线程不会降低很多性能。

  从操作系统和应用程序方面说,目前能够适应64位单线程CPU的软件也应该适用于少量的高度TLP优化的处理器。由于TLP设计的带宽密度较大,系统带宽很容易被耗尽,因此,采用NUMA(非一致存储访问)优化以增加本地内存将变得更加重要。

  对于仅能够运行一个线程的CPU内核来说,无论每个芯片上有多少个CPU内核,操作系统都将以相同的方式调度各项任务。然而,对于多线程CPU内核来说,在某种情况下可能还需要更多的优化,以便把一个运行的线程从一个CPU内核转换到另一个内核。例如,如果一个CPU正在运行4个线程,而另一个CPU正在运行9个线程,最好是让每个CPU运行两个线程。这就需要操作系统提供支持,也许还需要芯片的一些支持。

  软件优化

  减少执行一个任务所需要的指令数量有助于提高整体效率,为其它的线程保留更多的资源。然而,这可能会降低一个线程的性能。由于TLP优化设计可能更多地限制带宽,而不是限制延迟,使用更紧凑的数据格式或者其它技术减少主内存带宽的需求可能是有帮助的。这还会改善缓存的碰撞率。但是,这将使代码更复杂并且增加需要执行的指令数量。软件优化似乎没有任何简单的答案。

  很多开发人员也许会认为,由于单内核和单线程处理器还要存在一段时间,现在对TLP优化的处理器做出重大的改变所需要的努力太大了,不值得。很多服务器应用程序现在都太复杂。

  对于商业软件来说,这些软件要在短期内做出重大改变以更好地适应多内核和多线程处理器是不太可能的。这还意味着处理器设计人员不能设想现有的应用程序能够为满足他们的需求而做出改变。换句话说,处理器设计人员应该确保现有的代码能够尽可能快地运行。

共2页。 1 2 :
  • 本文关键字:
  • 服务器技术(46)
  • 多核(124)
  • 线程(57)
  • 并行(68)
  • 相关文章
    网友关注
    热门产品
    编辑推荐
    推荐专题
    更多
    思科
  • 打开网络创新之门
  • 思科公司于北京嘉里中心饭店成功举办了主题为“创新网络,绿色引擎”的思科创新日暨思科新品发布会。
  • 论坛热贴
    更多
    博客精选
    更多
    视频推荐
    更多
  • 杜青松:对IT人员要求别具一格
  • 在对杜青松的采访中,他透露出目前在中粮包装有限公司信息化建设的工作中的一个难点——IT人力资源短缺。
  • TMG

    Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络

    渝ICP证B2-20030003号 商务联系、网站内容、合作建议:010-82657868

    版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i

    经营性网站备案信息 网警备案 中国网站排名