Joined: 15 Jan 2004
Location: Barksdale AFB, LA
|Posted: Fri Oct 13, 2006 7:51 am Post subject: The Facts about multiple Folding instances
|I've seen a lot of varied discussion regarding multiple instances of the Folding program. I think it needs to be set straight with what Stanford suggests:
|F@H's Wiki site wrote: |
|Although being advertised as a virtual second CPU, a Hyper-Threading (HT) enabled CPU is not equivalent to a dual-CPU setup with regard to Folding@home.
In simple terms Hyper-Threading allows unused instruction units of the CPU to be utilized in parallel. Whilst this can be very effective for certain application classes, for Folding@home it is not especially helpful.
SMP aware OSes see a Hyper-Threaded CPU as two CPUs, when in actual fact there is one complete CPU + its "spare" instruction units.
Folding@home Molecular Dynamics (MD) calculations use, almost exclusively, 1 type of instruction unit, which differs depending on the core. FPU/SSE for Gromacs & QMD and the FPU for Tinker & Amber. A few parts of the calculations are performed using the other instruction units, but they are minor compared with main SSE/FPU code.
If 1 instance of Folding@home is running, there will be large segments of the CPU that are not being used, like the ALU etc. This provides the OS, and most other programs with the ability to run along-side Folding@home with little performance impact, since most "everyday" programs don't require the segments of the CPU that Folding@home is using.
However, if you try and run two instances of Folding@home on the same Hyper-Threaded CPU, they will both be competing for the same instruction units. This essentially means that each Folding@home instance shares its access to those instruction units. Overall a small performance gain is achieved due to the few calculations that can be run on the "spare" instruction units. However the end result is that the two WUs you are running complete in just under twice the length of time as a single WU would because of the afore mentioned instruction unit sharing.
The recommended procedure is to run a single instance of the Folding@home client per physical CPU, because this will finish a Work Unit (WU) in the shortest time. This is more valuable to the science of Folding@home, since the data from processed WUs is used to generate new ones.
If you have an HT capable CPU, the best way of running Folding@home is to install 1 instance of Folding@home, and leave HT enabled. This way you will gain a slight performance advantage over disabling HT, since Folding@home will be affected to a lesser degree by other programs running.
Note: Windows task manager will show the CPU usage whilst running 1 instance of Folding@home on a HT enabled CPU to be only 50%. This is wrong. The single instance of Folding@home is working at full capacity on the portions of the CPU that it utilizes.
So, it's more important to get them back to them quickly rather than do more. If you have a HT CPU, leave HT on but only run one instance.
|F@H's Wiki site wrote: |
|CPUs with more than one core, e.g. an AMD X2 CPU or an Intel Core Duo, are seen by the Operating System and by the Folding@home client as separate CPUs, as apposed to HT enabled CPUs. Therefore utilizing more than one core of the CPU is accomplished by running multiple instances of the Folding@home client. One for each CPU core.
Dual Core CPUs are broadly equivalent to two CPUs within one package.
If you have multiple core CPUs, use one instance for each CPU.
There you have it ladies and gentlemen. Simple, from the horse's mouth.
RIAA vs The People