网格编程模型:当前工具、问题与方向
1. 引言
网格编程的主要目标是研究编程模型、工具和方法,以支持在网格环境中有效开发可移植的高性能算法和应用程序。它所需的能力和特性超越了简单的顺序编程,甚至是并行和分布式编程。网格程序员不仅要编排私有数据结构上的简单操作,或共享、分布式数据结构上的多个操作,还要在开放、异构、动态的环境中管理计算,同时处理复杂的内存和带宽/延迟层次结构。此外,还需设计远程服务、数据源和硬件资源之间的交互。
虽然可以使用当前的编程工具构建网格应用程序,但越来越多的人认为,现有的工具和语言不足以支持高效网格代码的有效开发。网格应用程序通常是异构和动态的,会在不同类型的资源上运行,且资源配置可能在运行时发生变化。这就带来了一系列问题,例如编程模型能否为异构资源提供统一的“外观和感觉”,运行时系统能否提供透明性,以及能否协助或隐藏资源发现等。
网格还用于大规模高性能计算,要实现高性能,需要平衡所有涉及资源的计算和通信。目前,通过消息传递或远程方法调用(RMI)来管理计算、通信和数据局部性,但要在千兆浮点处理器的紧密或松散耦合网格集群上实现千万亿次浮点运算速率,应用程序必须允许极大的粒度或产生约 10⁸ 路并行性以容忍高延迟。
鉴于这些问题,我们需要明确当前编程模型的不足,确定所需的新能力,并考虑这些能力是在语言层面、工具层面还是运行时系统中实现最佳。编程模型有多种形式,如语言、库 API 或具有可扩展功能的工具,它会影响整个软件生命周期,成功的编程模型应支持高性能以及资源的灵活组合和管理,同时便于使用各种开发工具。
接下来,我们将讨论网格编程面临的主要问题,简要介绍网格环境中正在使用或提出的常见编程模型,以及可用于解决主要问题的
超级会员免费看
订阅专栏 解锁全文
1085

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



