$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like
I was just browsing through the Options tab in Excel 2010 when I noticed the following setting:
This feature was introduced in Excel 2007.
In the default settings, multi-threaded calculation is Enabled with "Use all processors on this computer".
On a physical desktop this would be the preferred setting since it will make formula calculation as fast as possible.
However on shared environments such as Citrix XenApp, Microsoft RDS and VDI this seems like a very bad setting since one user can use the full processing capacity and hinder other users.
Unfortunately changes to this setting are not stored in the registry or filesystem. So even when you change it through the GUI the settings are not retained when you close Excel. This sounds like a BUG in Excel.
As a workaround we can change this setting using VBA via the Application.MultiThreadedCalculation property.
To fix it permanently I placed the code in an .XLAM (Excel Add-In) and placed in in the Excel startup folder.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Private Sub Workbook_Open() ' Disable MultiThreaded Calculation ' Application.MultiThreadedCalculation.Enabled = False ' Other options ' ' Automatic Mode ' ' Application.MultiThreadedCalculation.ThreadMode = xlThreadModeAutomatic ' ' Manual Mode ' ' Application.MultiThreadedCalculation.ThreadMode = xlThreadModeManual ' ' Use 2 CPU ' ' Application.MultiThreadedCalculation.ThreadCount = 2 ' End Sub |
That fixes it:
For your convenience you can download the Excel Add in: DisableMultiThreading.zip (6244 downloads )
10 Responses for "Excel 2010 multi-threaded calculation"
Thanks for sharing Remko,
Funnily, this is the exact same response as I received for Microsoft. We tested this method for some time and realized that clever users (if such a thing exists) used the developer tab to re-enable the functionality and we were back at square one.
For this reason, I created threadlocker. To remove excel from certain cores, drop its priority and readjust if the user tries to readjust the affinity of priority:
http://andrewmorgan.ie/2012/05/15/introducing-threadlocker-a-community-tool-for-granular-control-of-processes/
@Andrew: I am just wondering if this is a bug or just bad design, the setting should be persistent and ideally hidable to users via GPO. Your tool is excellent and I highly recommend it!
Great solution! 😀
Solved the problem for me. Thanks!
This has been a bug since the release of Excel 2007. Thank you so much for providing a solution and description of the problem. I’ve set mine to 6/8 processors so other applications are still usable.
[…] 2007 Office has was optimized to take advantage of multiple processors. For example, Excel uses multi-threaded calculation to speedup complex […]
Thanks man this really helped me with an rds environment experiencing this issue.
Thank you, that has helped me adjust Excel from all four processor cores to three cores leaving one core to allow our virtual desktops to perform regular operations.
It works fine for new workbooks, but for some reason I can’t find a way of making it apply for existing workbooks.
Can anyone help?
John
Thanks for your Excel-AddIn. It works like a charm, if the User open Excel normal.
When the User open Excel by double clicking on a excel-sheet, it does not work.
Unfortunally the most of our User open excel by double clicking a document.
Is there also a solution for this behavior?
Thanks again
As far as i can see the settings are stored in the Excel files themselves.
If you extract the files from an Excel file you should look in the /xl/workbook.xml file for the following:
concurrentCalc=”1″
(Disable multithreaded)
concurrentManualCount=”x”
(where x is the number of available threads)
The default is to have none of the above and that will result in the default “enable multi-threaded calculation”
The only questions are how to change this for new and old files and how to do this while opening the Excel file through Excel itself or just by doubleclicking.
respected Sir,
i want the matter
multiple threaded how to use in excel?
any examples videos or articles
Leave a reply