CPU cores are meant to be used by a single thread only. You can use more, but this rests on the assumption that two(or more) threads can effectively utilize a single core without too much competition over resources. This assumption is true in most situations, e.g. when we have to wait for IO or server queries or things like that often, and in these cases using HT can give a small performance boost. Now, here we are only utilizing the CPU. In this case the threads are only getting into each other's way. The effects of this can be seen very clearly with your program. It seems to scale perfectly, or very nearly so, as long as you don't use more threads than you have actual cores on your computer. When you go above that limit the scaling goes to hell and you get no improvement at all. The only way to solve your scaling problem is to get rid of the competing threads by turning off HT. I did this and have never looked back.

-Mikko Aarnos
_______________________________________________
Computer-go mailing list
[email protected]
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Reply via email to