MCAPI是由MulticoreAssociation定义的一项分布式IPC的标准。MCAPI标准中定义了应用层消息API而不是内核通信协议(例如:它不包含套接字)。相比于专门的IPC系统,使用用MCAPI标准的应用代码相比硬件、物理传输、操作系统有更好的可移植性。
OpenMCAPI是由MentorGraphics创建的一个开源的MCAPI的实现,其中大多数的代码是基于BSD协议,除了Linux内核驱动——它基于GPL/BSD双重协议。
一、MCAPI简介
MCAPI提供三种不同的通信方式:
1. Message——最灵活的一种通信方式。
特点:
l 面向无连接。
l 类似UNIX网络编程中的UDP数据报。
l 以data buffer作为数据载体进行进程间通信。
l 显示指定通信双方的endpoint对(send endpoint和receive endpoint)。
l 收、发消息以及消息令牌的优先级动态变化。
l 通常用来实现同步、初始化、动态平衡。
2. Channel(包括:packet channel和scalar channel)
特点:
l 面向连接。
l 提供的单向的FIFO流传输(packetchannel与scalar channel不同的是,packet使用data buffer而scalar使用的特定的scalar value)。
l channel在初始化时进行创建,这个连接使用显示握手来建立,一旦建立连接将保持通信直到任意一个endpoint发出终止请求。
MCAPI中常用术语概念简

本文介绍了MCAPI作为分布式IPC标准,提供了Message和Channel两种通信方式,强调了其在多核系统中的可移植性。OpenMCAPI是其开源实现,文章还展示了在Linux下使用MCAPI进行简单进程间通信的测试案例。
最低0.47元/天 解锁文章





