网格编程:挑战、中间件与通信技术解析
1. 网格编程的挑战
现代基于互联网的系统编程,尤其是网格系统编程,其根源可追溯到自20世纪70年代以来就被积极研究的传统并行编程领域。并行编程经验与网格编程相关,原因主要有两点:
- 网格通常包含多台并行机器,需要使用合适的并行编程模型进行编程。
- 网格节点,无论是顺序计算机还是并行计算机,都能同时协同工作,体现出各种并行行为和交互模式。
然而,尽管并行编程取得了进展,但拥有多个处理器的计算机仍然难以编程。分布式内存机器上最流行的并行编程模型——消息传递接口(MPI),是相当底层的。它要求应用程序员对所有处理器间的通信提供明确、详细的描述,这使得编程过程复杂且容易出错,特别是对于拥有成百上千个处理器的新兴大规模并行系统,这阻碍了许多时间密集型应用领域的发展。
引入网格后,并行编程的困难并未消失。构成网格的并行机器仍需明确编程,此外,由于以下原因,网格还在编程过程中增加了一层复杂性:
- 计算资源的异构性 :网格中的机器可能具有不同的架构和性能,并且在不同时间以不同的配置供用户使用。
- 网络资源的异构性 :网格互连在系统空间和时间上的带宽和延迟都存在很大差异。
- 复杂的调度 :由于任何非平凡的网格应用的不同部分相互依赖,将作业非最优地分配给服务器可能会导致整个应用处理出现重大延迟。
当前应对网格编程复杂性挑战的方法是使用网格中间件。其目的正如其名称所示,是在系统和应用程序员之间进行协调。在设计应用程序时,很难期望应用程序员去管理网格系统中多个、异构且高度动
超级会员免费看
订阅专栏 解锁全文
541

被折叠的 条评论
为什么被折叠?



