微软公司软件架构人士近日在加州举行的“秋季处理器论坛”上指出,处理器厂商在走向多核时代时忽略了和软件开发商配合。此外,在多核时代,应用软件开发商不能再吃“轻松修改代码即可挖掘硬件资源”的“免费午餐”,必须从一开始就注意多线程同步问题。
在论坛首日,各处理器厂商就推出了5款最新的多核处理器,但微软公司软件架构师赫伯·舒特(Herb Sutter)表示,软件公司并未作好配合多核处理器的准备,他说:“我来自软件领域,我们迫切需要沟通。” 舒特说,处理器厂商为了解决高主频带来的发热问题而被迫走向双核或多核,但他们并没有让软件厂商明白多核对软件意味着什么。
“免费的午餐已经结束,”舒特说。他认为,长久以来随着英特尔和AMD公司芯片速度的提高,PC软件厂商只需对现有软件做一些改动就可以坐享“渔翁之利”。不过,在多核处理器的条件下,各种客户端软件的厂商必须考虑多线程和同步处理问题,以便把一个任务分解成多个子任务,从而利用多核处理器的超强工作能力。
据舒特称,服务器软件厂商可能避开这个问题,因为此前的服务器就已经是多处理器的,相应的服务器软件已经充分考虑了多线程同步问题。然而,对于大多数客户端应用软件开发商,过去他们一直专注于单线程的开发,开发的大多数都是“串行式应用”。这些公司应该找到全新的开发应用的办法。正如面向对象开发给汇编语言增加了一层复杂性一样,多线程的开发也需要新的一个抽象层。
据悉,微软已经在公司内部成立了一个名为“同步项目”的开发小组。他们的工作正是在Windows操作系统中定义这些面向多线程的抽象层,并把它和硬件层相联系。这样,应用软件开发商有望重返过去的“免费午餐”时代。