Pourquoi评论组合 le博客du Goulu博士
le博客du Goulu博士

为什么软件会运行得更快

在«为什么软件不会很快运行得更快«,Ralph Gabowski引用了7个看起来正确的事实,但我认为他的结论并非如此。

多核(事实3)是在«中等粒度»级别实现多处理的硬件解决方案:运行不同的程序、进程或与其他人几乎没有通信的线程是有效的(以避免事实5中提到的问题)。

然而,没有理由“为多核重写软件”(事实4)。编译器很快将集成以下工具英特尔线程工具生成优化的多线程代码,可能需要人工预处理的帮助(使用开放式多媒体播放器例如)。

我对此充满信心的原因是,编译器已经能够很好地处理«细粒度»并行性或«矢量化»,以便(几乎)同时执行独立操作。

GPU正是为图形设计的“细粒度并行”处理器(事实7),但这可能会改变。分析人士认为,AMD收购ATI将在不久的将来宣布CPU和GPU的合并。我们很可能很快就会看到具有高度并行内核的多核CPU,每个CPU都可以按需作为GPU或CPU工作。这个IBM的细胞处理器索尼Playstation 3中使用的,可能被认为是朝着这个方向的第一次尝试。的确,目前很少有软件能够利用它的强大功能。

CPU时钟速度“停滞”的事实(事实1)并不意味着处理能力确实如此。并行是一种在不增加Gigaherz的情况下继续增加Flops(每秒FLoating Point Operations)的方法,事实证明这是一种“廉价”、非创新的提高性能的方法。

最后,64位处理器确实带来了解决巨大内存(事实6)的能力,而这些内存乍一看几乎毫无用处。然而,每个程序员都知道cpu和内存之间的权衡:你可以存储大量数据并快速访问,也可以在需要时花时间重新计算所需的数据。因此,使用更大、更快、更便宜的内存,让软件更快的一个好方法是在巨大的缓存中存储更多的临时数据。

更进一步的是,考虑到64位地址空间比世界上任何一个硬盘阵列都大。那么,为什么总是要区分硬盘存储和RAM内存呢?一些实验性的«持久»操作系统将整个硬盘作为一个交换文件来处理,以获得一个可以包含计算机上所有数据的大型虚拟内存,从而消除了对«文件»的需要。

最后,«大粒度»并行可以用于在网络中跨计算机分配工作。一些动画渲染和面向研究的屏幕保护程序已经这样工作了。现在想象一下,这与上面提到的«持久»操作系统相结合。考虑一个多核矢量化处理器网络,共享相同的地址空间,每台使用磁盘存储的计算机仅作为处理器和网络之间的缓存。

这不是科幻小说。它被称为“单地址空间操作系统”(sasos),目前已有多个功能原型。其中,蛋白石明确提到CAD/CAM是一种潜在的应用。想象一下,这样一个包的用户直接在内存中共享同一个模型:他们不需要复制任何文件,也不需要重建部件,不需要加载,不需要签入或签出。想象一下,当一个软件不需要做任何事情两次时,性能会有什么提高…

短期内,在单核机器上,Vista将比XP慢(事实2)。在双核上可能会比较慢。但它应该在四核上更快,除非微软用太多«功能»将其膨胀到只剩下一个应用程序内核…

自由放任

投票地址电子邮件ne-sera pas publieée。 冠军的义务是独立的*

Ce站点使用Akismet pour réduire les indésirables。En savoir plus sur comment les données de vos commentaires sont utiliées(恩萨维尔附加评论).

Aucun评论”为什么软件会运行得更快