松本行弘在《代码的未来》中说,未来的计算机将主要靠并行来提升效率,我不这样认为。
首先计算机的架构中,需要提升的部分还很多很多。
寄存器的读写速度比缓存要快很多,而缓存的读写速度又是内存的几个数量级。而硬盘的读写更是比内存慢了很多。而 CPU 通常不是在做一件事情,在操作系统中,CPU 同时在做的事情非常多,图形界面,系统服务,网络服务,当你知道你的电脑中有 N 个内核的时候,不要着急,还轮不到你去调度它们。你所做的,还是提升你的代码的效率,在算法上提升功力。因为适合并行的应用其实不多:分布式数据库的读取,云计算,这些都是为那些想成为网络巨鳄的狂人们预备的,这些人想把自己的意志力强制放在更多的资源上,于是催生了同时驾驭更多资源的架构。而我们,真正需要这些东西吗?
未来的计算机,计算机的核心数当然会显著上升,但寄存器的数量也会更多,而缓存的容量也会更大,而内存的存取速度和容量也会上升,硬盘呢?读取速度的提升才是关键的,而网络速度的提升也能让计算机的速度感觉快上不少。而你的程序,将越来越可能单独分配一个 CPU 来连续的运行。那时候的一个 CPU 时间,将真正的缩短。等到了单核计算无法提高的时候,缓存技术将登上舞台,用空间换时间,这个时候,CPU 的核心数量依旧不是限制计算能力的关键。
我们真的需要更快吗?
时间: 2024-10-18 07:16:46