Hypothetical Question.

I wrote 1 multithreading code, which used to form 8 threads and process the data on different threads and complete the process. I am also using semaphore in the code. But it is giving me different execution time on different machines. **Which is OBVIOUS!!**

Execution time for same code:

On Intel(R) Core(TM) i3 CPU Machine: 36 sec

On AMD FX(tm)-8350 Eight-Core Processor Machine : 32 sec

On Intel(R) Core(TM) i5-2400 CPU Machine : 16.5 sec

So, my question is, 

Is there any kind of setting/variable/command/switch i am missing which could be enabled in higher machine but not enabled in lower machine, which is making higher machine execution time faster? Or, is it the processor only, because of which the time difference is.

Any kind of help/suggestions/comments will be helpful.

Operating System: Linux (Centos5)