gpt4 book ai didi

chapel - Chapel 多语言环境程序中对语言环境间行分布的细粒度控制

转载 作者:行者123 更新时间:2023-12-01 01:43:46 24 4
gpt4 key购买 nike

我正在尝试在 Chapel 中为多语言环境实现一个 SOR、连续过度放松、程序,但使用本地内存,所以我想明确地在语言环境之间分配行。我已经 reshape 了targetlocales到一维,但现在我不确定如何控制语言环境之间的行分布。

我非常习惯于 MPI,所以我将举例说明我想要根据 MPI 实现的目标。有没有一种方法可以指定我想在语言环境中分配所有数组行,如 #rows/#locales 和最后一个语言环境中的剩余行?

我现在在教堂面临的问题是:

  • locales = 2 模式在区域设置 - 1 上为 5 行,在区域设置 - 2 上为 5 行
  • locales = 3 模式在语言环境 - 1 上为 4 行,在语言环境 - 2 上为 3 行,在语言环境 - 3 上为 3 行
  • locales = 4 模式在语言环境 - 1 上为 3 行,在语言环境 - 2 上为 2 行,在语言环境 - 3 上为 3 行,在语言环境 - 4 上为 2 行
  • 语言环境 = 8 模式是语言环境 - 1 上的 2 行,语言环境 - 2 上的 1 行,语言环境 - 3 上的 1 行,语言环境 - 4 上的 1 行,语言环境 - 5 上的 2 行,语言环境 - 6 上的 1 行,1 行上语言环境 - 7,语言环境 - 8 上的 1 行。
    随着#locales 的增加,模式会发生变化。

  • 由于每个实验的数组大小会有所不同,因此我希望控制行分布,因为它的本地内存多语言环境实现。我将不得不复制回来并接收来自相邻语言环境的行。

    最佳答案

    作为背景,Chapel 语言本身并没有规定数组的行如何在语言环境之间分布。相反,它是域映射的定义——一种将域的索引和数组元素映射到语言环境的用户定义类型——这样做。当前 Block distribution这是 Chapel 标准模块的一部分,除了您上面描述的默认值之外,目前还没有一种方法可以指定阻塞是如何完成的。然而,通过努力,人们可以编写自己的域图——或自定义 BlockDist模块——获得不同的分布。

    据我了解,您希望在每个初始语言环境中使用上限(行/语言环境),然后在最终语言环境中使用剩余元素?在我们的 GitHub issues 上作为功能请求提交是合理的。页。或者,如果您想自己解决它,您可以在 Chapel 的 Gitter channel 或邮件列表上寻求帮助(请参阅 userdeveloper resources 页面以获取两者的链接)。

    关于chapel - Chapel 多语言环境程序中对语言环境间行分布的细粒度控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53464714/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com