title: Numpy dot operation is not using all cpu cores
body: <ul>
  <li><p>I am doing numpy dot product on two matrices (Let us assume a and b are two matrices).</p></li>
  <li><p>When the shape of a is (10000, 10000) and shape of b is (1, 10000) then the numpy.dot(a, b.T) is using all the CPU cores.</p></li>
  <li><p>But when the shape of a is (10000, 10000) and shape of b is (2, 10000) then the numpy.dot(a, b.T) is not using all the CPU cores (Only using one).</p></li>
  </ul>
  
  <p>This is happening when the row size of b is from 2 to 15 (i.e from (2, 10000) to (15, 10000)).</p>
  
  <p><b>Example:</b></p>
  
  <pre><code>import numpy as np
  
  a = np.random.rand(10**4, 10**4)
  
  def dot(a, b_row_size):
      b = np.random.rand(b_row_size, 10**4)
  
      for i in range(10):
          # dot operation
          x = np.dot(a, b.T)
  
  # Using all CPU cores
  dot(a, 1)
  
  # Using only one CPU core
  dot(a, 2)
  
  # Using only one CPU core
  dot(a, 5)
  
  # Using only one CPU core
  dot(a, 15)
  
  # Using all CPU cores
  dot(a, 16)
  
  # Using all CPU cores
  dot(a, 50)
  </code></pre>
  
  <p><b>np.show_config()</b></p>
  
  <pre><code>openblas_lapack_info:
      define_macros = [('HAVE_CBLAS', None)]
      libraries = ['openblas', 'openblas']
      library_dirs = ['/usr/local/lib']
      language = c
  lapack_opt_info:
      define_macros = [('HAVE_CBLAS', None)]
      libraries = ['openblas', 'openblas']
      library_dirs = ['/usr/local/lib']
      language = c
  blas_mkl_info:
    NOT AVAILABLE
  lapack_mkl_info:
    NOT AVAILABLE
  blas_opt_info:
      define_macros = [('HAVE_CBLAS', None)]
      libraries = ['openblas', 'openblas']
      library_dirs = ['/usr/local/lib']
      language = c
  blis_info:
    NOT AVAILABLE
  openblas_info:
      define_macros = [('HAVE_CBLAS', None)]
      libraries = ['openblas', 'openblas']
      library_dirs = ['/usr/local/lib']
      language = c
  </code></pre>