SCI 上共享内存与消息传递的对比
在并行计算领域,不同的通信机制和内存访问方式对于程序的性能有着显著的影响。本文将深入探讨 SCI(Scalable Coherent Interface)上的消息传递和共享内存实现,以及它们在 Split - C 编程环境中的应用。
1. Split - C 与 Active Messages 简介
Split - C 是一种用于并行编程的语言,它提供了远程内存操作和原子操作。为了优化并行程序,Split - C 还提供了用于大数据传输(批量获取和批量放置)和分散收集操作的库例程。Split - C 已经在许多计算平台上基于 Active Messages 实现,包括 TMC CM - 5、Intel Paragon、Meiko CS - 2、IBM SP - 2 和工作站网络。
Active Messages 是一种低延迟的通信机制。每个活动消息包含一个处理函数的地址,当消息到达接收处理器时,该处理函数将被执行。消息处理函数通常较短且执行速度快,并且不允许挂起。为了消除复杂的缓冲区管理和简化死锁问题,Active Messages 将处理函数分为请求和回复两类,类似于 SCI 底层的请求/回复协议。活动消息请求可以将消息发送到任意处理器,到达目的地后,指定的请求处理函数将被调用。请求处理函数可以通过发送单个回复消息进行响应,而回复处理函数则禁止进行额外的通信。在 Active Messages 模型下,消息直接从用户空间(发送指令)传输到用户空间(消息处理函数),避免了传统发送/接收模型中常见的缓冲区管理和同步问题,从而实现了比传统通信机制更高的性能。
SCI上共享内存与消息传递对比研究
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



