网格编程模型:当前工具、问题与方向
1. 远程过程调用相关
在网格编程中,远程过程调用(RPC)是一个重要概念。所有使用函数句柄的RPC调用将在句柄指定的服务器上执行,特定的(非阻塞)RPC调用由会话ID表示,会话ID可用于检查调用状态、等待完成、取消调用或检查返回的错误代码。
GridRPC是网络服务概念的直接扩展,在Ninf和NetSolve之上都有原型实现。它采用仅服务器端的IDL管理,使得部署和维护比其他分布式计算方法(如CORBA)更容易,因为在CORBA中,服务器更改时客户端也需要更改。此外,还有其他用于网格的RPC机制,如SOAP和XML - RPC,它们通过HTTP使用XML。虽然XML提供了极大的灵活性,但目前对科学数据的支持有限,且编码成本较高。不过,通过支持双精度矩阵和二进制数据字段等,这些问题有望得到解决。GridRPC实际上也可以基于开放网格服务架构(OGSA)实现。
Java远程方法调用(RMI)继承了基本的RPC设计,但有其独特之处。它允许程序员创建分布式Java应用程序,在不同Java虚拟机(可能在不同主机上)上的远程Java对象的方法可以被调用。RMI真正面向对象,支持Java程序的所有数据类型,并且有垃圾回收机制,这使得调用者和被调用者可以清晰分离,便于分布式系统的开发和维护。Java的RMI提供了一个适合网格计算的高级编程接口。
2. 混合模型
网格计算的本质是让各种主机为网格应用程序所用。因此,一些应用程序既希望在共享地址空间内多线程运行,也希望通过机器间的数据和控制传递来运行。为解决这一问题,开发了多种编程模型。
- OpenMP和MPI
超级会员免费看
订阅专栏 解锁全文
39

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



