0

介绍

对于我的库,我需要拆分一个长方体点晶格以分配给多个处理元素 (PE)。

示例分解

如您所见,PE 之间没有共享点,并且某些 PE(此处为 4-7)仅获得二维“切片”。

该接口接受n1, n2, n3P它们都是整数。表示沿方向即或的nx格点数。表示可用的PE数量。xn1n2n3P

当前的问题表述

由于域是一个长方体,我正在寻找这样的 3 部分分解PP = p1 * p2 * p3并且与px成比例nx

问题表述的局限性

  1. 需要开发三部分分解算法。
  2. 必须使用某种度量来选择生成的许多 3 部分分解中的任何一个。在图像中的示例中,假设n1 = 3, n2 = 5, n3 = 4P = 54我们将有 3 部分分解(27, 2, 1)(9, 3, 2)和。这里适用哪一个?一个简单的差值度量会选择。但即使这样也有多个排列和.(6, 9, 1)(6, 3, 3)(6, 3, 3)(3, 6, 3)(3, 3, 6)
  3. 如果选择的 3 部分分解有一个大于相应格子大小 ( nx) 的因子,那么我们将不得不截断它,这意味着一些 PE 将不起作用。
  4. 如果选择的 3 部分因式分解有一个因子(可能是在上面提到的截断之后)不划分其相应的格大小,我们就有不均等的工作共享(尽管一些 PE 可能正在休眠,如上点所示)。

读者如何提供帮助

  • 我们如何改进这种不优雅的算法?您能否建议对“问题表述的限制”中的任何一点进行改进?
  • 有没有更好、更正式的方法(即问题表述)?
  • 论文/网站/文章/书籍的链接将不胜感激。
4

0 回答 0