软件分布式共享内存系统的编译和运行时优化
在科学计算等领域,软件分布式共享内存(SDSM)系统对于实现并行计算至关重要。然而,SDSM系统在处理常规科学应用时面临着一些挑战,下面我们将详细探讨这些挑战以及相应的优化方法。
1. 背景与目标
在很多应用中,多维的数据和计算分区能够减少序列化,并且在处理器数量较多时,多维分区比一维分区更具可扩展性,因为其通信与计算的比率更小。因此,在SDSM系统上有效支持多维分区是一个重要目标。
以往的研究中,常规应用大多呈现出松散同步的并行性,即完全并行的循环嵌套被同步操作分隔开来。但对于那些需要更紧密耦合同步的常规应用,如具有循环携带数据依赖的应用的波前并行化,相关研究却比较缺乏。
我们的工作聚焦于提高SDSM系统上常规应用的性能,主要致力于降低多维分区带来的虚假共享和碎片化成本。同时,我们利用编译器得出的共享和通信模式知识,来协调SDSM的同步和数据移动。
2. 面临的挑战
若SDSM系统要在各种常规科学应用中达到与直接消息传递相当的性能,需要克服以下三个主要挑战:
- 高效同步原语 :在消息传递系统中,进程间同步是数据通信的附带结果。虽然可以使用共享变量和锁来模拟同步以强制进程间的数据依赖,但这些方法所需的消息数量超过了最小值。为了提高效率,需要直接实现同步原语。屏障同步会对计算施加全局顺序,但难以应用于流水线计算,并且不利于实现波前并行化,因为在波前并行化中,一个流水线的关闭阶段与下一个流水线的启动阶段是重叠的。
- 操作延迟 :采用基于无效化的内存一致性协议的SDSM系统(如Tre
超级会员免费看
订阅专栏 解锁全文
5万+

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



