【问题标题】:Matrix multiplication using multiple locales使用多个语言环境的矩阵乘法
【发布时间】:2019-12-07 03:19:30
【问题描述】:

您好,我想看看是否有人能看到我的代码有任何明显的问题。我正在尝试在两个 Nvidia Jetson 板上运行我的代码,以利用 8 个内核来加速。我想比较使用一块板和两块板的速度。我将 Chapel 环境设置为允许执行多个语言环境。 这是我的实现:

use LinearAlgebra, Norm, Random, Time;
var t : Timer;

writeln("Size of your matrix?");
var size = read(int);

var grid : [1..size, 1..size] uint(8);
var grid2 : [1..size, 1..size] uint(8);
var grid3 : [1..size, 1..size] int;

fillRandom(grid);
fillRandom(grid2);

t.start();
forall loc in Locales do
  on loc do
    forall i in 1..size do
        forall j in 1..size do
            forall k in 1..size do
                grid3[i,j] += grid[i,k] * grid2[k,j];
t.stop();
writeln("Done!:");
writeln(t.elapsed(),"seconds");
t.clear();

我不断得到:

error: Only 1 locale may be used for CHPL_COMM layer 'none'
To use multiple locales, see $CHPL_HOME/doc/rst/usingchapel/multilocale.rst

当我运行 cores.chpl 文件时:

coforall loc in Locales do
  on loc do
    writeln("locale ", here.id, " named ", here.name, " has ", here.numPUs(), " cores.");

这是输出:

locale 0 named JetsonNano has 4 cores.
locale 1 named JetsonNano2 has 4 cores.

所以我知道环境设置正确。

我只是不确定我是否正在设置我的矩阵乘法代码,因为它允许在多个语言环境中使用。

【问题讨论】:

    标签: chapel


    【解决方案1】:

    消息:

    error: Only 1 locale may be used for CHPL_COMM layer 'none'
    To use multiple locales, see $CHPL_HOME/doc/rst/usingchapel/multilocale.rst
    

    表示当您编译 Chapel 程序时,您要么未设置 CHPL_COMM,要么在编译发生的会话中设置为 none。尝试在当前会话中设置CHPL_COMM=gasnet(或者,等效地,使用--comm=gasnet 进行编译),重新编译,然后使用-nl 2 运行。

    在给定的会话中,您可以运行 $CHPL_HOME/util/printchplenv 来查看当前设置和/或推断的环境变量是什么。对于给定的 Chapel 程序,您可以运行 ./myChapelProgram --about 以获取有关其编译时设置的信息。

    如果您打算大部分时间使用CHPL_COMM=gasnet,您可以使用Chapel configuration files 来避免一遍又一遍地重新设置。

    【讨论】:

    • 啊,好吧,那行得通,我编写了一个脚本来运行一切来设置环境,但由于某种原因它会跳过CHPL_COMM=gasnet。现在它不允许我输入矩阵的大小。它只是运行整个代码并给我一个时间输出,而无需我输入矩阵的大小。
    • StackOverflow 不打算用于一般正在进行的对话,但是...... Chapeltastic 获取大小的方法是使用config const size = 10,这将允许您的程序以myChapelProgram --size=100 运行或任何你想要的尺寸。关于为什么读取大小不起作用的难题可能应该被带到它自己的 SO 问题或 Chapel GitHub 问题上。
    猜你喜欢
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2014-12-16
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 2017-03-20
    相关资源
    最近更新 更多