新软件开发技巧需求日益增加

    作者:课课家教育更新于: 2019-04-15 10:21:56

      目前整个世界上很缺乏那些并行计算的研究人员,而一个间接的原因就是学院里对于并行计算的关注度不够,而这些学院正是下一代软件开发人员诞生的地方。“当你真正需要在某点上平衡性能来产生出多个线程时,人们的判断就可以看出到底在哪个地方产生多线程更佳。”

      微软的研究科学家称,在这周微软和Intel公司的宣告之后,很多的慈善组织都声称它们会给美国两所大学捐赠2000万美元,以帮助这些大学激发并行或者多核编程领域方面的研究。

      微软多核计算的主管DanReed称,目前整个世界上很缺乏那些并行计算的研究人员,而一个间接的原因就是学院里对于并行计算的关注度不够,而这些学院正是下一代软件开发人员诞生的地方。

      这么多年来,越来越高的时钟频率导致应用程序的代码运行的越来越快,而对于当前多核处理器来讲这一规则虽然成立,但却有所不同。

      而这种不同可以做一个形象的比喻,那就是一部跑车和一辆学校的巴士。当跑车能够以很快的速度飞奔时,巴士虽然比较慢,但它可以载着更多的人前行。

      问题就是,简单地在计算机CPU上增加多个核并不能增加传统应用程序代码的运行速度,这一结果是根据一项来自于Forrester研究公司的报告得出的。

      该报告的作者写到:“为了从四核处理器上获得更好的性能并为更加密集的多核CPU做准备,应用程序的开发者就需要写一些代码,这些代码可以自动创建多个同时执行的线程,同时也负责线程的分配、同步并行工作并管理共享数据来保护多线程代码的同时执行问题。”

      换句话说,复杂的工作需要拆分来填充这辆巴士上的空座位。

      Forrester的报告还谈到:同时,当前四核处理器会激发更多的多处理器设计的思想,我们期待着2009年x86的服务器使用64个处理器核,并且2012年台式机也可以实现这一梦想。

      当前的情况使得芯片的制造商以及主要的板级应用的软件厂商意识到多核编程的机遇和挑战。

      TopCoder公司——一个软件开发厂商,邀请它的成员在一个工程不同的方面开展了一系列特别的竞赛。这项活动的另一个参与者是AMD公司,该公司也主要专注于多线程。

      作为TopCoder的首席技术官MikeLydon谈到,多核编程仍然是少数人所掌握的技术。我们从技术角度看到的情况就是这样,正如你所预期的那样,高端的开发者对于多线程非常熟悉,这这些人之后,就有很少一部分人熟悉这一领域了。

      “这令我感到非常的吃惊,因为多线程编程并不是一个新技术,”他补充说到,“实际上,我们多线程指导性的文章在微软MSDN的站点上可以追述到1993年。”

      Lydon谈到,“我认为这首先来自于学院一级,我听到的是很少的关于学院教授多线程编程的课程,但是,我始终认为并且希望,这一情况有所转变。”

      但是,Forrester报告的观点还表明,这一问题还不至于紧急到非常时刻。研究指出,主要的操作系统和中间件产品都开始为多线程以及近似的“多核处理器”做好准备,并且公司的开发部门也在寻找ISVs来解决开发工具和平台的问题以更好地处理多核相关的任务。

      但是,微软的Reed相信,随着时间的推移,多线程会成为每一个专业软件开发人员必备的技巧。

      同时,当前大多数并行计算的资源并没有隐藏多线程编程的复杂性。“当前有一些软件开发工具的选择,但是它们中的绝大多数都是低级语言的扩展或者库,”Forrester谈到。

      比如,在今年二月AMDopen-sourced大会上,在一项叫做Framewave的工程下有超过3200个软件例程,这些例程可以让编码者建立针对x86处理器的多线程应用。

      “库并不能提供完全的答案,但是我们可以把这些看成叠带的步骤,”AMD商务解决方案及软件策略的主管MargaretLewis谈到。“当前,你可以做一些事情,而当你等到一些高级工具诞生以后可以进一步增加你应用的多线程能力,”她谈到。

      当前在市场上还有一些高级的产品,比如由RapidMind公司销售的平台,该平台可以利用现有的单线程的C++代码,然后通过抽象层在多核上并行这些操作。

      但是,认为有了好的多线程工具就足够了的想法是非常天真的,Lydon谈到,“当你真正需要在某点上平衡性能来产生出多个线程时,人们的判断就可以看出到底在哪个地方产生多线程更佳。”

      

课课家教育

未登录