Disable Hyperthreading when doing processor intensive task?

I have a huge Excel sheet that takes about 5min or so to recalculate values in all the columns. The sheet is stored locally, so it is not a network speed issue, and I am not running any other applications at the time this is running, just Excel and a few background processes.

My question is regarding the hyperthreading feature (P4 3.0Ghz 1.5GB RAM). I see that the process EXCEL.EXE rarely goes over 50%, and there is an option to disable hyperthreading in the BIOS. Ive never tried disabling it and I wonder what might go wrong if I tried it. Would disabling hyperthreading allow the system to allocate more processor to excel?

I’m sure it is not the best way to solve the problem, and I probably could figure out a way to get this done in Access or VB, but I just need to get it done and I know how to do it in Excel.

I doubt you are going to see any performance improvement, but if you want to disable hyperthreading there should be an option in the BIOS to do so.

Have you tried this?

Go to Task Manager >>> Processes
right-click on the application >>> Set Priority >>> High

I doubt that it will make a huge difference – it might even make the performance worse. Hyperthreading makes Windows see 2 CPUs on the system(although in reality the second CPU is not a full CPU – it shares a lot of resources with the first CPU). The 50% CPU utilization indicates that Excel is using 50% of the total CPU resources that Windows thinks that it has, which is 50% of two full CPUs. In other words, Excel is talking 100% of CPU time on one of the “CPUs”. If you disable Hyperthreading you’ll probably see Excel get up to 100% CPU time, but I bet that Excel won’t be running any faster because it’s still using the same CPU resources it had access to with Hyperthreading on.

I’m not sure I understand, shouldn’t it be theoretically possible for one process to use close to 100 of the processing power%?

I could swear that I have seen processes with CPU utilization >50% on this machine. Maybe those were multithreaded or more hyperthreading “aware” apps though, I’m not at work any more to check.

thanks,

Hyperthreading is not true multithreading; there is still only one processing core on your chip. The advantage of hyperthreading is that it hides memory latency by fetching multiple instructions for the execution pipeline. On a cache miss, for example, the processor has another instruction to execute immediately while the memory fetch occurs. The operating system displays a HT processor as 2 logical processors. It is certainly possible to use 100% of the CPU; the fact that your Excel process is not fully using the CPU is not due to hyperthreading.

I suspect that your Excel process is memory-bound rather than CPU-bound. That is, the data processing you are doing might have a lot of relatively slow random memory accesses.