title: Matrix multiplication using multiple locales
body: <p>Hi I wanted to see if anyone can see any glaring problems with my code. I am trying to run my code over two Nvidia Jetson boards to utilize 8 cores for speed up. I want to compare the speed of using one board compared to two boards. I have the Chapel environment set up to be allowed for multiple locale execution.
  Here is my implementation:</p>
  
  <pre><code>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();
  </code></pre>
  
  <p>I keep getting:</p>
  
  <pre><code>error: Only 1 locale may be used for CHPL_COMM layer 'none'
  To use multiple locales, see $CHPL_HOME/doc/rst/usingchapel/multilocale.rst
  </code></pre>
  
  <p>When I run the cores.chpl file which has:</p>
  
  <pre><code>coforall loc in Locales do
    on loc do
      writeln("locale ", here.id, " named ", here.name, " has ", here.numPUs(), " cores.");
  </code></pre>
  
  <p>This is the output:</p>
  
  <pre><code>locale 0 named JetsonNano has 4 cores.
  locale 1 named JetsonNano2 has 4 cores.
  </code></pre>
  
  <p>So I know the environment is set up right.</p>
  
  <p>I'm just not sure if I am setting my matrix multiplication code right for it be allowed over multiple locales.</p>