Myrinet系統軟件GM分析
發布時間:2007/8/28 0:00:00 訪問次數:1107
摘要: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)等手段來實現資源的控制、分配和利用。對用戶程序而言,網卡有固定數目的端口,每個端口有高低兩個優先級,而每個端口有固定數目的發送和接收令牌。在發送或接收前,必須首先要打開端口,并申請
上一篇:選擇T1/E1/J1單片收發器