分类: 系统运维
2007-07-02 19:16:27
1. MS MPI与MPI
(1) MS MPI是MPI 2标准的一个实现
(2) MS MPI尽可能地做到了与MPICH2的兼容
(3) 使用WCCS的时候不一定非得使用MS MPI,可以使用任何MPI stack,但是那样就不能使用MS MPI的安全功能了。
注:
a. 我对文档中的所谓的U can use any MPI stack U choose表示怀疑.
b. 这里提到的MS MPI的安全功能是指WCCS可以提供加密的通信channel, 和对发送接收的数据进行加密的功能
c. 这样的加密算法必然是可逆的,哈
2. MS MPI Features
(1) MS MPI包括了160+个API和用来执行程序的mpiexec.
(2) 支持C, Fortran77与Fortran90 (But how about C++??)
(3) Visual Studio 2005可以提供MS MPI的并行编程/运行/调试环境。
注:据说这个调试环境可以自动连接每个节点的进程进行单独操作和观察。//admire. 当然调试环境的VS要能直接访问计算节点。
(4) 支持通信域和用户自定义的通信域(后者在MPI 1中是不支持的)
(5) 支持collective操作
(6) MPI对通信的buffer支持得很好,支持内建的数据类型和组合数据类型(包括连续的和非连续的),不知道是不是说MS MPI在这些方面也做得很好。
(7) Mpiexec使用类似job submit /numprocessors:x /runtime:x:x mpiexec a.exe这样的命令来提交任务。
(8) MS MPI比MPICH2多了对任务进行安全管理的功能。
(9) 易于从别的MPI实现的并行程序移植到MS MPI环境,无需重写代码。
3. MPI实现
最初为分布式系统设计的MS-MPI,现在也支持共享内存的系统。
(1) 硬件与协议
MS MPI使用了MS的WinSock Direct协议。MS MPI可以使用Windows 2003 Server支持的任何以太网互联协议,也支持InfiniBand与Myrinet。
GigE使用RDMA(Remote Direct Memory Access), InfiniBand有自己的WinSock Provider,Ethernet则使用TCP/IP协议栈。但最终都要统一到WinSock的接口而被MPI调用。
(2) 支持的网络拓扑结构(单/多网卡,比较无聊的描述)
a. 每个节点上三块网卡:public, private; high-speed MPI network.
b. head节点上三块,其他节点上两块网卡:head节点提供NAT,计算节点拥有private与high-speed MPI network.
c. 每个节点上两块网卡: public; private network.
d. head节点上两块网卡,计算节点上一块网卡:头节点提供NAT。
e. 每个节点一块网卡: 所有节点以public network连接。不支持远程安装。
4. 安全性问题
(1) MS MPI使用了MS的Active Directory来进行用户验证,而MPICH2要求使用root用户来运行作业(区别于提交,但我对这点还是有疑问)。
(2) 数据和用户验证通过加密的可信的通道进行。head节点监控所有的进程。