技术前沿:软件编程是痛点 探索新一代并行计算模式

多年来计算机行业一直为攻克并行计算的壁垒不懈努力着,正如笔者在过去多次提及的,多核就是并行计算,并行应用软件的实现是项过程艰苦,代价高昂的征程,它大大增加了软件编译的复杂性。到目前为止还没有可以攻克这一难题的快速有效的解决方案。计算机产业目前面临的一大挑战就是如何实现应用软件向多核平台的过渡。由此可见并行软件是摆在我们面前切实而急待解决的问题。

不能"事不关己,高高挂起"

当然,并行计算机的程序编译还是有章可循的,但这些方法却无法解决更高端的并行计算难题。确实,并行计算时常会令程序设计者们陷入繁琐的数据和临时的任务当中,而这些在单核设计中是不存在的。如果我们无法拿出更好的办法来解决这个问题,那么编译并行软件将成为一项极端痛苦而又耗时费钱的工程,以致阻碍计算机产业的进步。在缺少实际解决方案的前提下,不可移动的特别方法将成为业界的规范。

目前业界的所有与并行计算有关的一线计算机厂商都抱着"事不关己,高高挂起"的态度,笔者对此深感不解,似乎大家对解决这一状况的迫切性还缺乏足够的认识和参与的动力。笔者认为有必要对此进行详细的解析,首先以汽车为例来进行类比:

假设你身在一家汽车公司,你拥有最新型的高速并且安全的汽车。这些汽车可以在现有的道路上行驶,但是却只能实现其最高速度的一小部分。那么为了能实现汽车的全速行驶你就需要更好的道路。否则,没有符合要求的道路,用户就不会去购买你生产出来的高速汽车。当然,这不是你的问题,因为你已经制造了目前世界上所能见到的最好的汽车,应该有其他人为修建道路负责。但作为一家大型企业的首脑,你面临一个选择,要么你为了汽车的销售去协助修建道路,要么任其自然,只管去制造你希望用户购买的汽车。到底你会如何选择呢?

如果你是一家资金雄厚的IT厂商,就不该固步自封回避现实,只顾着去制造你的汽车。尽管这不是你的分内之事。看起来目前的计算机领域中几乎所有的企业对待既得利益都抱着这种态度。最近有声明显示英特尔和微软斥资1000万美元投身并行软件的研究。但是我对此不报乐观态度,因为对于并行计算来说这点钱无异于杯水车薪,很快就消耗殆尽无功而返。因此我们需要更多的资金,更多!

笔者有个不同的提议,这或许是在合理期限能得出创造性结论的机会。首先我并不认为这是适用于每个人的万能解决方案。这个解决方案可能只是专门针对特殊情况,它要求实践者将更多的注意力集中在他们的应用软件上。

其次,整个计算机业界必须通力合作携手并进。我们需要每个人都参与其中共同解决这个问题。高性能计算领域中的精英们一直在为此努力,是时候让大家共同关注了。让企业里研究与发展中心的工程师们都行动起来。封锁有关商业机密和专利的知识产权的努力都是不切实际的。行业科学家们长期以来也在致力于并行计算的发展。别在浪费时间为了知识产权你争我夺。也别再为新一代产品推出之际如果无法引起用户的兴趣会发生些什么而整天思前想后了。

第三,我们需要对此做出快速的应对。没有时间再为知识产权协议和企业既得利益去一再讨论。我们需要IT业界的领军者们对这个挑战和行动的规模达成共识。不久的将来,桌面电脑上实现4核甚至八核都是指日可待。工作站或者服务器的核心数量可能还会加倍。如果我们的应用软件能有效的利用所有这些核心,那将是多么振奋人心呀。

最后,我们希望每家企业都能倾囊而出。毕竟解决方案不会是天上掉下来的馅饼。英特尔和微软的投资开了个好头,但我们还需要更多的资金。

探索新一代并行计算模式

这是解决这个问题的唯一方法,希望不会太迟。工业领域应该建立一家独立的基金会或者IT企业投资的类似机构。基金会负责对来自公司,教育机构,集团组织以及个人的提议进行上报,审批和筹资。对于其他的研究计划,也有不同层次的机构负责筹资,执行和培训等。这样可以保障项目能顺利列入日程并继续执行。不过,所有收到的资金都必须在GPL(General Public License,通用公共许可协议)授权许可下才能用于项目的投放。

使用GPL能立即清除重要项目进行中的障碍。首先,任何知识产权的壁垒都不复存在,每个人都能自由公开的进行合作。企业不再需要成年累月的为知识产权协议大费脑筋。在GPL下每个人都能对资源进行共享。如我所见,这不过是千里之堤,溃于蚁穴,当厂商取得某项专利时,也无疑于切断了其他用户使用它的通路。其次,GPL创立了一种共享式框架结构,在GPL的保护下,每个人都可以随时随地的对解决方案进行使用,测试和修改。那些得到公众最大限度认可的解决方案能最大的发挥作用。这里汇集了无数程序设计者有待开发的聪明才智。开放式框架架构就意味着任何用户都没有使用的限制,也没有测试协议的约束。会有更多的人乐于去研究和尝试更好的解决方案。第三,未来的工作是在其他人创建的源代码基础上公开进行的。没人可以独占具有光明前景的技术。最后,GPL为程序设计者的合作提供了成熟的框架结构(诸如,GPL已经开始运行,我们不必再去讨论如何进行分享了)。

当然,对于那些为知识产权高唱凯歌而拒绝创新的股东来说,他们将时间花费在寻找共同合作的知识产权协议上。那么对于他们未来产品的销售前景就很难乐观。如果能认真的思考一下,你会发现,共享的开放式途径是解决并行计算这一难题的最具性价比的方法了。因为这是所有人都面对的问题。

同时值得一提的是,这种想法并非独具新意。GNU/Linux操作系统和相关软件都是有关国际合作如何开发产品和促进销售的成功案例。如今已经很少有公司会在设计,研发和生产流程中从无到有的完成操作系统了。GNU/Linux核心和关联软件本质上说都是共同研发出炉的产品,也为大众服务。每个人都为其努力过,也有权使用。成本分摊也达到了最优。也许大家也会注意到,开放式的免费软件能促进硬件系统,软件支持和服务的销售。这是个不错的商业模式,每个对硬件销售有所帮助的小的软件创意,集合在一起进行成本分摊并形成合适的解决方案。并行软件的挑战同样也能够面对。主要的参与者所面对的就是要对确保满足他们产品未来需求的最快最经济的方法有所认识,并能充分利用目前实施的陈本分摊的开发模式。毕竟,这是个科技高速发展的时代,共进共荣是我们追求的目标。