你可能已经认识到给台式机或者笔记本选用4核处理器是一种浪费,但是这不是你的问题:编写并行执行的代码是相当困难的,所以大部分的应用(除下一些计算密集型电子游戏)都只能在单核心上运行。然而一组来自斯坦福的研究者最近发布已经模拟出在百万核心上的并行处理。
随着并行处理的"家喻户晓",在多个节点上运行应用程序可以比以往更快 —— 工作量可以分配于多个节点进行并行处理,核心越多越快。这也是Hadoop诞生的原因,非常适合大体积数据的处理。MapReduce框架将作业分配到多个节点上进行处理,然后汇总出结果输出。
但是即使是Hadoop也只能够在上万个节点上运行,因为它关注的是节点 —— 在多核心处理器的利用上并不是很充分。IBM出品的Sequoia超级计算机(安置在劳伦斯利弗莫尔国家实验室),斯坦福团队用98304个处理器(或节点)构成;每个处理器封装了16个计算核心,总计1572864核心;研究员已经可以利用到大部分核心,他们称以开创许多类别上的记录。
不去管记录,这确实是件复杂到难以置信的任务;这个模拟实现了超过百万的任务在上万个节点(每个节点16核心)上的分配。因为如果这些进程中出现一处碰撞,都可能会导致系统变慢或者摧毁整个模拟。
即使在经常会出现几十万核心的超算世界中(其中可能还会有特殊用途搭载GPU的处理器),都缺少充分利用这些核心的解决方案。高性能计算世界正向着百万兆级运算迈进,但是比能源消耗更大的问题可能会出现 —— 应用程序需要更多的计算能力以及适应如此规模的算法。
原文来自: While we waste four cores, scientists use a million at a time