title: how to split program to fully utilize multi-CPU, multi-Core and hyper-Threading?
body: <p>I have a bunch of commands to execute for gene sequecing.
  For example:</p>
  
  <pre><code>msclle_program -in 1.txt
  msclle_program -in 2.txt
  msclle_program -in 3.txt
        .........
  msclle_program -in 10.txt
  </code></pre>
  
  <p>these commands are independent of each other.</p>
  
  <p>The Environment is Linux Desktop, Intel i7(<strong>4 core/8 thread</strong>)×<strong>7</strong>, <strong>12G</strong> memory</p>
  
  <p>I can <strong>split these commands into different n.sh programs</strong> and run them simultaneously.</p>
  
  <p>My question is How can I fully utilize multi-CPU, multi-Core and hyper-Threading to make the program run faster?</p>
  
  <p>More specifically, <strong>how many program files</strong> should I split into?</p>
  
  <p>My <strong>own understanding</strong> is:</p>
  
  <ol>
  <li>split into 7 program files. So each CPU will 100% run one program</li>
  <li>With one CPU, the CPU will utilize its multi-core and multi-thread by its own.</li>
  </ol>
  
  <p>Is it True?</p>
  
  <p>many thanks for ur comments.</p>