我需要同步在多个工作处理器上分布解决的优化问题的中间解决方案。已知解向量是稀疏的。
我注意到,如果我使用 MPI_AllReduce,与我自己的 AllReduce 实现相比,性能很好。
但是,我相信,如果 AllReduce 只能传达解决方案向量中的非零条目,则可以进一步提高性能。我找不到任何这样的 AllReduce 实现。
有任何想法吗?
似乎 MPI_type_indexed 不能用作非零条目的索引,因为事先不知道。
我需要同步在多个工作处理器上分布解决的优化问题的中间解决方案。已知解向量是稀疏的。
我注意到,如果我使用 MPI_AllReduce,与我自己的 AllReduce 实现相比,性能很好。
但是,我相信,如果 AllReduce 只能传达解决方案向量中的非零条目,则可以进一步提高性能。我找不到任何这样的 AllReduce 实现。
有任何想法吗?
似乎 MPI_type_indexed 不能用作非零条目的索引,因为事先不知道。
我认为您可以创建另一个向量来存储解决方案向量中的所有非零元素。然后使用 MPI_ALLReduce。