title: Allocating Multiple Threads to Single Parallel Do on Xeon Phi with Open MP
body: <p>I have some code similar to this:</p>
  
  <pre><code>!$dir parallel do
  do k = 1, NUM_JOBS
    call asynchronous_task( parameter_array(k) )
  end do
  !$dir end parallel do
  </code></pre>
  
  <p>I've tried many different strategies, including </p>
  
  <pre><code>$ micnativeloadex $exe -e "KMP_PLACE_THREADS=59Cx4T OMP_NUM_THREADS=236"
  </code></pre>
  
  <p>But, when I check the MIC with top, I'm only getting 25% usage.</p>
  
  <p>I'm having a great deal of difficultly finding any specific help in the Intel docs/forums and OpenMP forums, and now I'm thinking that my only shot at having 59 tasks with 4 threads working on each task is to combine open-MPI with open-MP.</p>
  
  <p>Does anyone have any experience with this and have any recommendations for moving forward? I've been running 236 asynchronous tasks instead, but I have a suspicion that 59 tasks will run over 4 times faster than 236 due to the memory overhead of my task. </p>