Hey guys, I spent a little time looking at our affinity mask settings on my personal 3960x this weekend and I have some more solid answers for you. I'll start with the affinity mask, and then how explain hyper-threading fits in.
The affinity mask is a one byte ( 8 bit ) mask that tells our job scheduler which processors to schedule jobs on. If you have a 6 core processor with hyper threading, i.e. a 3960x, 3930k, etc., your processor has more cores than are covered by our bit-mask. Nevertheless, Prepar3d's default behavior seems to be to use one of the threads on each of the two extra cores. This is the desired behavior, so I see no reason to worry about it.
The reason that Prepar3d selects every other logical processor and many recommend disabling hyper threading entirely has to do with the way hyper threading works, as well as the type of tasks we thread off to background threads. Hyper threaded processors have certain select parts of their cores duplicated, which allow them to process two commands at once on a single processing core. That being said, they share the same components for accessing system resources like main memory and hard disk access. These resource access operations are very slow, and these are the primary tasks that we farm out to background threads. These resource access tasks perform very poorly when placed on both logical cores of a single hyper threaded processor core. Because the two logical cores share access to system resources, their I\O requests can interrupt one another, causing additional hard drive seeks and other very slow operations. For this reason, it does not benefit Prepar3d to use all of the cores on a hyper threaded processor, and doing so can in fact contribute to stutters.
My suggestion is to use the bit mask to map one thread to each physical core on a processor except for the primary core, which will almost always be I\O bound to begin with. I would leave hyper threading enabled at the system level because it does have benefits in general computer use and many other applications. |