I'm interested in running some reasonably heavyweight processing on my desktop/laptop (not so bad that it requires a cluster, but needs a good home machine). My question is how many threads to create in order to get the job done most quickly (assume that the application distributes the workload with very few overheads).
I would usually create one thread per processor, but I was wondering if the hyperthreading capability on the Core i5/i7 means that I should actually be creating two threads per processor (i.e. one thread per virtual processor). Anyone know?
*Obviously, a reasonable answer would be try it and see. As it takes about 12 hours to run, I'd prefer to get it right the first time, but I'll happily post results if I get a chance to run it both ways.