集群计算与多处理器架构解析
1. 集群特性的相互依存性
在集群系统中,各种特性在很大程度上是相互依存的。以高可用性系统为例,其性能下降幅度超过预期损失,这与可扩展性密切相关。为了监控内部故障,就需要大量的系统开销,更不用说确定并重新分配资源和职责到集群中的其他系统了。而且,在协商纠正措施时,监控进程随时可能出现故障,这可能导致递归恢复操作。此外,将集群资源用于管理集群的稳定性,而不是用于服务用户这一主要目标,存在着一种权衡。
2. 集群应用分类
集群计算应用大致可分为两类:超级计算和事务处理。
-超级计算:超级计算机通过并行执行复杂的数值算法来求解方程。例如,它可以生成天气数据模式的图形投影,像预测明天天气的软件模拟。超级计算需要在数值方法上具备特殊的编程技能,包括如何通过数字逼近算法求解复杂方程、验证算法以及检测和利用其中的并行性。在集群架构上的超级计算应用历史上一直很成功,因为大量计算机通常能比同等成本的单个处理器表现更好,使得集群计算机成为最佳选择。例如,NASA的Beowulf项目于1994年启动,使用高端PC和专用通信设备组装了一个16节点的超级计算机,成本仅为同等性能单台计算机的十分之一。当应用程序中的固有并行性有限时,可扩展性对超级计算机来说就不那么重要了。并行性通常通过在多个节点上调度相同的指令块来实现,每个块处理不同的数据子集。如果块的最大数量不超过7个,系统架构师就无需考虑将收益递减点进一步扩展。同样,如果系统中可用节点的最佳数量超过了块的最大数量,系统就具有内置的容错和高可用性。
-事务处理:这里的“事务”是一个广义概念,包括数据库查询、财务指令以及常