我想在进程之间平衡一组矩阵块。矩阵块有不同的大小,尽管通常一个块占主导地位,大小相似,甚至比所有其他块加起来还要大。进程的数量可能比块的数量大得多,也可能小得多。每个块可以存储在单个进程上,也可以作为ScaLAPACK数组分发。平衡应在质量上满足以下条件:
我知道,这种分配将取决于适用前两个条件的优先权有多大和有多大(第三个条件应严格适用)。然而,是否有任何算法可以方便地解释这些条件?
发布于 2020-12-03 15:27:46
这是计算机科学中一个很常见的问题,所以现成的图书馆应该能够帮助你。您应该查看梅蒂斯和/或苏格兰威士忌,看看这两种方法是否适合您的需要。
您的第一个条件是‘负载平衡’,第二个条件是类似于‘通信成本’(即MPI通信在分割块中的成本)。
这两个条件之间的适当平衡将完全取决于问题的性质,但使用苏格兰威士忌或梅蒂斯,你应该能够调整这些参数,直到你找到最佳的组合。
https://stackoverflow.com/questions/65110186
复制相似问题