位置:51电子网 » 技术资料 » 通信网络

Myrinet系统软件GM分析

发布时间:2007/8/28 0:00:00 访问次数:1122

    摘要:GM是Myrinet专用的系统软件,由于采用了用层通信、在LANai上运行MCP等机制,故具有占用系统开销小、延迟短、带宽大等特点,中国外已广泛应用于并行计算领域。

    关键词:Myrinet GM 用户层通信 LANai

1 GM简述

GM是美国Myrinet公司为其高性能网络产品Myrinet而推出的系统软件,专 用于网络并行计算,在国外已广泛应用于大规模并行领域。

GM的设计思想就是要实现一种高速度带宽低延迟,主机开销极少的通信方式。GM的高效率,除了采用用户层通信机制等外,关键在于充分配合Myrinet在硬件架构上的特性。GM在Myrinet网卡的LANai芯片上运行MCP,承担了大部分的通信处理工作,大大减轻了主机的通信开俏。总的来说,GM具有如下特性:

支持超过1000个节点;

可在不可靠网络环境中提供可靠、有序的数据传输服务;

低开销,每个数据包括只耗费主机大约1μs的处理时间;

通过提供高低两个优先级,可实现高效的防死锁算法;

对多个用户层程序直接访问网络接口提供存储保护;

理论上支持的消息长度可达231-1字节,实际则受限于主机DMA内存大小;

自动对Myrinet进行映射,解决路由问题。

GM不足之处在于编程模式不灵活和不支持多线程。

2 GM的结构

GM是MCP,DRIVER,LICGM三部分构成。这三部分之间的关系可有用图1来描述。

LIBGM为用户程序提供编程接口,其是重要的是发送和接收函数。此外,还提供一整套通用函数,如初始化、DMA内存管理、令牌管理、哈希管理、CRC校验等。

LIBGM所实现的功能可分在三类:第一类是通用函数,如哈希管理;第二类是通过DRIVER实现的功能,如内存映射功能;第三类是和MCP协同完成的功能,如发送的接收操作。其中第三类是完成数据通信功能的核心。为提高整个系统的性能,LIBGM和MCP之间的交互都绕开了操作系统,避免了包括在用户态和核心态之间的切换,从用户空间到核心空间数据拷贝等在内的各种开销。因此,从发送和接操作的路径上看,GM采用是用户层通信。

DRIVER是GM中的一个重要部分。其最主要的功能是完成MCP的初始化,其次是提供一些辅助性的功能。以Linux+x86平台为例,DRIVER以Module的形式实现,当被加载到内核的时候。DRIVER同时完在一系列初始化工作,包括:查找并自动配置PCI网卡设备,把MCP从主要加载到LANai的EPROM并且对LANai进行初始化,对LANai发出iocti功能来完成各种辅助功能。

MCP是GM最关键的部分,GM的其他功能都是在MCP的基础上构架起来的。MCP运行在Myrinet的网卡的LANai芯片上,它由DRIVER加载到LANai上。MCP借助LANai上的CPU和SRAM承担了大部分的通信处理工作,包括:在主机内存和LANai SRAM之间的数据DMA传送、数据包的拆分和组装、CRC校验、通信的应答管理、端口和令牌资源的分配、调度管理等。因此,主机方面的通信开销几乎为零。

网卡上的SRAM主要作用发送和接收数据的缓冲。MCP采取端口(port)、优先级(Priority)放发送/接收令牌(Token)等手段来实现资源的控制、分配和利用。对用户程序而言,网卡有固定数目的端口,每个端口有高低两个优先级,而每个端口有固定数目的发送和接收令牌。在发送或接收前,必须首先要打开端口,并申请

    摘要:GM是Myrinet专用的系统软件,由于采用了用层通信、在LANai上运行MCP等机制,故具有占用系统开销小、延迟短、带宽大等特点,中国外已广泛应用于并行计算领域。

    关键词:Myrinet GM 用户层通信 LANai

1 GM简述

GM是美国Myrinet公司为其高性能网络产品Myrinet而推出的系统软件,专 用于网络并行计算,在国外已广泛应用于大规模并行领域。

GM的设计思想就是要实现一种高速度带宽低延迟,主机开销极少的通信方式。GM的高效率,除了采用用户层通信机制等外,关键在于充分配合Myrinet在硬件架构上的特性。GM在Myrinet网卡的LANai芯片上运行MCP,承担了大部分的通信处理工作,大大减轻了主机的通信开俏。总的来说,GM具有如下特性:

支持超过1000个节点;

可在不可靠网络环境中提供可靠、有序的数据传输服务;

低开销,每个数据包括只耗费主机大约1μs的处理时间;

通过提供高低两个优先级,可实现高效的防死锁算法;

对多个用户层程序直接访问网络接口提供存储保护;

理论上支持的消息长度可达231-1字节,实际则受限于主机DMA内存大小;

自动对Myrinet进行映射,解决路由问题。

GM不足之处在于编程模式不灵活和不支持多线程。

2 GM的结构

GM是MCP,DRIVER,LICGM三部分构成。这三部分之间的关系可有用图1来描述。

LIBGM为用户程序提供编程接口,其是重要的是发送和接收函数。此外,还提供一整套通用函数,如初始化、DMA内存管理、令牌管理、哈希管理、CRC校验等。

LIBGM所实现的功能可分在三类:第一类是通用函数,如哈希管理;第二类是通过DRIVER实现的功能,如内存映射功能;第三类是和MCP协同完成的功能,如发送的接收操作。其中第三类是完成数据通信功能的核心。为提高整个系统的性能,LIBGM和MCP之间的交互都绕开了操作系统,避免了包括在用户态和核心态之间的切换,从用户空间到核心空间数据拷贝等在内的各种开销。因此,从发送和接操作的路径上看,GM采用是用户层通信。

DRIVER是GM中的一个重要部分。其最主要的功能是完成MCP的初始化,其次是提供一些辅助性的功能。以Linux+x86平台为例,DRIVER以Module的形式实现,当被加载到内核的时候。DRIVER同时完在一系列初始化工作,包括:查找并自动配置PCI网卡设备,把MCP从主要加载到LANai的EPROM并且对LANai进行初始化,对LANai发出iocti功能来完成各种辅助功能。

MCP是GM最关键的部分,GM的其他功能都是在MCP的基础上构架起来的。MCP运行在Myrinet的网卡的LANai芯片上,它由DRIVER加载到LANai上。MCP借助LANai上的CPU和SRAM承担了大部分的通信处理工作,包括:在主机内存和LANai SRAM之间的数据DMA传送、数据包的拆分和组装、CRC校验、通信的应答管理、端口和令牌资源的分配、调度管理等。因此,主机方面的通信开销几乎为零。

网卡上的SRAM主要作用发送和接收数据的缓冲。MCP采取端口(port)、优先级(Priority)放发送/接收令牌(Token)等手段来实现资源的控制、分配和利用。对用户程序而言,网卡有固定数目的端口,每个端口有高低两个优先级,而每个端口有固定数目的发送和接收令牌。在发送或接收前,必须首先要打开端口,并申请

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!