title: Asked to multithread matrix multiplication in c++11
body: <p>As of now i have two threads for each one of my functions. Axe and Sword are Matrix objects.</p>
  
  <pre><code>thread thrd1(Add, std::ref(Axe), std::ref(Sword), std::ref(Axe));
  thread thrd2(Multiply, std::ref(Axe), std::ref(Sword), std::ref(Axe));
  </code></pre>
  
  <p>Im am new to threading, and don't quite understand it. Do i have to add threading into my multiply function? right now it is simply </p>
  
  <pre><code>//Multiply the matrices
  void Multiply(Matrix &amp;a, Matrix &amp;b, Matrix &amp;c){
      for (auto i=0; i&lt;c.dx; ++i) {
          for (auto j=0; j&lt;c.dy; ++j) {
              for (auto k=0; k&lt;a.dy; ++k) {
                  c.p[i][j] += a.p[i][k] * b.p[k][j];
              }
          }
      }
  }
  </code></pre>
  
  <p>but i feel as if i need to add something else, due to their being no decrease in time while setting the number of threads through openMP. Can anyone help me out?</p>