设为首页 加入收藏

TOP

1.3 软件开发人员眼中的多核体系结构
2013-10-07 12:57:40 来源: 作者: 【 】 浏览:77
Tags:1.3 软件开发 人员 眼中 体系结构

1.3  软件开发人员眼中的多核体系结构

CMP的低成本和广泛可用性,使得一般的软件开发人员能够进行各种级别的并行处理。并行处理不再是超级计算机或集群的专属领域。基本的开发工作站和入门级服务器现在都具有软件级和硬件级的并行处理能力。这意味着程序员和软件开发人员可以无需牺牲设计或性能,即可根据需要部署利用多处理和多线程的应用。然而,需要注意的是,并非每个软件应用都需要多处理或多线程。实际上,一些软件解决方案和计算机算法最好使用顺序编程(www.cppentry.com)技术来实现。在某些情况下,在软件中引入并行编程(www.cppentry.com)技术的开销会使软件性能降级。并行性和多处理是需要一定成本的。如果软件中顺序地解决问题需要的工作量少于创建额外线程和进程的开销,或者少于协调并发执行的任务之间通信的工作,则应选择顺序的方法。

有时可以较容易地确定何时及何地应当使用并行性,因为软件解决方案本身可能会要求支持并行性。例如在很多客户端-服务器配置中,很显然是需要并行性的。可能有一个服务器,例如数据库,还有很多可以同时对数据库发起请求的客户端。在多数情况下,您不希望一个客户端被要求等待,直到另外一个客户端的请求被满足。可接受的解决方案允许软件并发地处理客户端的请求。另一方面,有时候可能会在不需要并行性时面对并行性的诱惑。例如,您可能会倾向于相信在文本中进行并行关键字搜索理所当然地比顺序搜索快,但是这依赖于需要搜索的文本的规模,同时还依赖于启动多个并行搜索agent所需要的时间和开销数量。设计决策者若赞成使用并发的解决方案,则必须考虑盈亏临界点和问题规模。在多数情况下,软件设计和软件实现是分开进行的,而且很多时候是由不同的小组来执行的。但是当主要的系统需求是软件加速或性能优化时,软件设计小组必须至少清楚软件实现的选择,而软件实现选择必须知道潜在的目标平台。

在本书中,目标平台是多核平台。为了充分利用多核平台,您需要理解做些什么工作才能获得CMP的性能。您需要理解CMP中的哪些部分是可以控制的。您将看到可以通过编译器、操作系统调用/库、语言特性、应用程序级库来访问CMP。但首先,为了理解如何处理CMP访问,需要对处理器体系结构有基本的理解。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++多核高级编程 目录 下一篇1.5.1 多道程序设计和多处理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: