title: How to determine the optimum number of worker threads
body: <p>I wrote a C program which reads a dataset from a file and then applies a data mining algorithm to find the clusters and classes in the data. At the moment I am trying to rewrite this sequential program multithreaded with PThreads and  I am newbie to a parallel programming and I have a question about the number of worker threads which struggled my mind:</p>
  
  <p>What is the best practice to find the number of worker threads when you do parallel programming and how do you determine it? Do you try different number of threads and see its results then determine or is there a procedure to find out the optimum number of threads. Of course I'm investigating this question from the performance point of view.</p>