有时MPI用于在消息中发送低熵数据.因此,在发送消息之前尝试压缩消息会很有用.我知道MPI可以在非常快的网络(10 Gbit/s甚至更高)上工作,但是许多MPI程序与廉价网络(如0,1G或1Gbit/s以太网)和廉价(慢速,低二分)网络交换机一起使用.有一个非常快速的Snappy(维基百科)压缩算法,它具有
压缩速度为250 MB/s,解压缩速度为500 MB/s
所以在可压缩数据和慢速网络上它会提供一些加速.
是否有任何MPI库可以压缩MPI消息(在MPI层;而不是像PPP中那样压缩ip数据包).
MPI消息也是结构化的,因此可以有一些特殊的方法,比如在double数组中压缩指数部分.
PS:还有LZ4压缩方法,速度可比
我不会发誓那里没有,但没有一个共同使用.
有几个原因是为什么它不常见:
MPI通常用于发送大量浮点数据,这些数据难以(但不是不可能)压缩得很好,并且经常在一段时间后具有相对较高的熵.
此外,MPI用户通常将延迟视为带宽,并且在消息传递关键路径中添加压缩/解压缩步骤对这些用户不具吸引力.
最后,一些操作(如简化集合或分散聚集)很难通过压缩有效地实现.
但是,听起来您的用例可以从中受益于点对点通信,因此没有理由不能自己做.如果你打算发送一个大小为N的消息而接收者预期它:
我不能给你关于压缩程序的很多指导,但看起来人们之前已经尝试过,例如http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.91.7936.