到目前为止所讨论的使用并行的机遇只涉及少量的处理器。但实际上还存在许多更具雄心的机遇。 超级计算机 国家研究实验室、军事部门以及大公司所感兴趣的求解问题通常需要使用超级计算机,所谓超级计算机是指当今世界上最快的计算机。20年前,超级计算机是用户定制的单处理器系统(一般具有向量处理能力),但是1996年11月在500强(Top 500)最快计算机名单中最后出现的单处理器系统共有3台,排名仅分别为第265位、第374位和第498位。现在的500强名单则为具有数以千计的处理器的并行计算机所占据。在许多方面,超级计算机程序员形成了最大和最富经验的并行程序员社区。 机群 常常可以观察到,不论单计算机有多快,将两个或多个计算机连接起来可以组成一个更快的计算机,因为组合的机器在单位时间内能执行更多的指令。当然,需要编写优质的并行程序以开发额外的计算能力。机群自20世纪90年代开始流行,因为用商品化部件构成的机群比较便宜。机群的低价格不但吸引了众多的小团体(实验室或小公司),而且与其他高端计算形式相比,机群具有很高的性能价格比。2007年6月公布的500强名单中(参见www. top500.org),机群占了74.6%。 服务器 因特网的扩张和远程服务(如搜索)的普及促成了大量的连网计算机。就每秒所执行的总指令数而言,这些服务中心代表着巨大的计算资源。典型的计算(如搜索查询处理)是相互独立的;此外,它们使用分布(相对于并行)的程序设计技术(参见1.1.5节)。无论如何,这些庞大的连网系统正被用来分析其工作负载特征,以及完成其他的数据密集计算;其解决方法也是需要应用并行程序设计技术。 网格计算 更进一步的通用化将使得计算机的集合无须在同一场所,也不需要由同一个机构加以管理;毕竟由因特网连接的计算机代表着巨大的计算资源。类似于电力网格,计算网格寻求一种能提供方便的计算服务的机制,即使低层的计算机是由物理上分散的机器组成,而且这些机器由多个行政部门分别管理。在网格普及之前,还存在许多技术问题,但这是一个活跃的研究领域。 由上可知,除了可以在单芯片的少量处理器上使用并行程序之外,还存在相当多使用并行程序的机会。这些大型计算机系统也激发起我们编写可扩展并行程序的冲动。