扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:转载自《网络世界》 2006年6月23日
关键字:
在本页阅读全文(共5页)
真实案例研究:并行搜索
要在大量符合某条件的问题中查找最优解决方案,或所有可枚举出的解决方案,最流行的一种方法就是树搜索。许多科学问题或日常生活中遇到的问题都可以转换并表达为一个并行树搜索问题。可能的应用程序范围从微不足道的解谜一直到复杂的战略分析。一种流行的方式就是建造一个状态树,每个节点表示一种特定的应用程序状态,然后对状态树进行搜索,找到具有最优状态的目标节点,或经过最少的步骤抵达目标节点。
为这样的并行搜索应用程序开发软件共有两个步骤。第一步是创建一个良好的抽象模型和转换问题,并以状态树的形式将其表现出来。抽象模型的质量将影响树的形状和大小,也会影响搜索的难易程度。第二步是使用并行计算在整个状态树内搜索。在大多数情况下,树都是在程序运行时动态建造的。由于树易于以一种不均衡的方式成长,因此随机地将一个子分支指派给工作线程或进程,可能会失去负载均衡。
总体而言,概括并行搜索编程非常困难,从模型抽象开始,我们就要面对挑战,随后是树建造,最后是并行搜索算法。一个出色的树模型需要开发人员具备指定行业的丰富经验,将问题完备地表达出来,并用树节点的形式表现问题。建造状态树后,通常还需要对树模式进行试验分析,以设计出一种有效的并行搜索算法。算法通常需要对树节点进行分割和分组,以发挥并行性能。
编看编想:大规模的并行化来了
在服务器端,RISC架构的服务器进入多核技术领域要早一些,所以一些专有的、或者说是基于Unix操作系统的行业化特征非常显著的应用已经是并行化编写的。而当x86领域迎来64位计算和多核技术的时候,绝大多数的基于Windows的应用都是传统的按照单一线程开发的。
现在,标准化、开放、TCO等浪潮席卷整个计算领域,x86服务器市场在飞速发展,逐步挤压原来的、非常强势的RISC架构服务器占有的份额,跟随服务器硬件技术的发展脚步,基于x86服务器的操作系统以及上层应用,都需要考虑处理器级别的多核、并行计算设计带来的性能提升,考虑软件如何能够适应并且更充分发挥硬件架构的优势。应该说,这是软件层进入了大规模的并行化设计阶段,毕竟,在销售量方面,x86市场是绝对领先的。
记者之前接触过一些将应用改为并行运行的案例,是采用集群系统后,将原来的应用进行一些修改以便能够充分利用集群系统并行处理的优势,比如石油勘探行业的用户,他们在计算和分析地震勘探资料应用中,采用大规模并行计算系统来实现叠前偏移和精确地震成像处理,提高勘探开发效益。不过,这些应用都还处在一个刚刚开始的并行化应用阶段,采用的是集群系统。多核技术在x86服务器中成熟后,如何能够充分利用到多核并行处理的优势,才是软件层面真正的挑战,就是所谓的“线程级并行”。
处理器在并行计算方面所做出的技术革新贡献,仅仅是整个产业链上的一个小环节,与用户应用紧密相连的是软件层,正如文章中引述的微软软件架构师Sutter所说的:处理器设计首要的着眼点应该是可编程性,而不是速度。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者