SCI通信与PVM-SCI技术解析
1. SCI通信模型
SCI(Scalable Coherent Interface)支持共享内存通信模型,通过SCI接口卡让一个进程的本地内存可供其他进程使用。从应用程序角度看,通信层负责将本地内存页面导出给其他参与进程,SCI适配卡的驱动软件负责数据的检索和传递。
想要参与共享公共地址空间的计算节点,必须映射内存块,从而隐式建立连接。在SCI中,这种连接是一个映射的内存段(也称为窗口),由一个进程分配并导出内存,另一个进程导入内存来建立。根据映射类型,段可以以只读或只写模式进行映射。由于远程写入比远程读取快得多(约66 MByte/s 对 8 MByte/s),PVM - SCI的实现方式是只从具有写入权限并导出给远程进程的本地内存段读取数据。
通信设置步骤
- 确定参数 :在SCI连接的设置阶段,Scali SCI驱动使用三个基本参数来分配、提供和映射内存,以加入SCI地址空间。
- 唯一的HostID :通过调用SciGetNodeId()获得。
- 每个任务的ModuleID :在运行时应无歧义。
- ChunkID :在任务分配中是唯一的,这样一个节点上的不同任务可以分配段而不相互干扰。
- 提供远程访问 :将这些参数传递给SciOffer(),可以将SciAllocateLocalChun