15、基于uGNI的Cray XE MPICH2 Nemesis网络模块解析

基于uGNI的Cray XE MPICH2 Nemesis网络模块解析

1. 通用网络接口(GNI)

通用网络接口(GNI)为网络中间件提供了一个底层API,以便高效利用Cray XE网络。它主要面向用户空间和内核空间的网络应用,这些应用的通信模式本质上是基于消息的,并且从网络故障中恢复的能力很重要。该API并非用于开发终端用户应用,而是供库开发人员开发消息传递库,如MPI。

GNI的设计采用了分层方法:
- 最低层的通用硬件抽象层(GHAL)用于与Gemini的特定实现进行接口,它可以屏蔽硬件寄存器等实现细节,使上层组件不受影响。
- kGNI是设备驱动程序,实现了内核级API。
- uGNI库为用户空间应用实现了API。

1.1 API元素

GNI API使用了一些软件构造来利用底层的Gemini硬件,为开发者提供灵活性,同时提供足够的抽象以高效映射到未来的Gemini实例。API的重要概念包括:
- 通信域(CDM):一组进程(即对等体),在网络内形成一个硬件保护域。
- 端点(EP):用于管理CDM内对等体之间的数据交换的软件构造。
- 完成队列(CQ):传递完成队列事件(CQE),为跟踪网络事务提供轻量级通知机制。
- 内存句柄(MH):用于RDMA操作的内存区域的句柄。

1.2 远程直接内存访问事务和消息传递

GNI提供了使用BTE或FMA单元发起RDMA事务的接口,支持RDMA写、读和原子内存操作(AMO)。应用程序通常为每个RDMA或消息传递事务请求一个全局CQE。

GNI利用Gemini的带远程通知的专用R

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值