Compartilhar via


Excel 2007 multi-threaded calculation boosts performance

Some mention of this was made on the Excel blog about the performance improvements that can be derived from Excel 2007 due to the new multi-threading capability but I don't think people are aware of what a huge difference this can make.

A quick overview on excel multi threaded calculation can be found here:

To a large number of customers, Excel’s calculation speed is extremely important – perhaps the most important “feature” we ship.  When planning Excel 12, we started a small investigation to look at different ways we could make Excel calculate faster on computers that had multi-processor or dual-core chips.  The investigation turned out to be promising, so we continued the work, and the result is a very exciting feature that we refer to as multi-threaded calculation, or MTC.  (Note – this is another working name, not a final name.  Also note that our developers refer to this as MTR, or multi-threaded recalculation, but since most customers use the word calculation, I have decided to go that route for this post.)

In a nutshell, this feature enables Excel to spot formulas that can be calculated concurrently, and then run those formulas on multiple processors simultaneously.  The net effect is that a given spreadsheet finishes calculating in less time, improving Excel’s overall calculation performance.  Excel 12 can take advantage of as many processors (or cores, which to Excel appear as processors) as there are on a machine - when Excel loads a workbook, it asks the operating system how many processors are available, and it creates a thread for each processor.  In general, the more processors, the better the performance improvement.

I came across a good example of this from a company, MB Risk Management, who make add-ins for excel for the derivatives trading market.  In their own words:

MB Risk Management (MBRM), developers of the world-famous UNIVERSAL™ Add-ins. With 30,000+ users world-wide, the UNIVERSAL Add-ins are the most widely-used derivative software for Trading, Risk Management and Arbitrage (Convertibles; Bonds; Exotics; Options; Futures; Swaps).

They are boasting massive performance boosts on 2007 Excel on dual core machines due to the support for multi threaded. 

Time to recalculate MBRM UNIVOPT benchmark speed test spreadsheet

Test 1: Single core machine

Using Excel 2003 69.5sec.

Using Excel 2007 69.5sec.

Test 2: Dual-core machine

Using Excel 2003 88.97sec

Using Excel 2007 with 1 calculation thread 88.8sec.

Using Excel 2007 with 2 calculation thread 45.74sec.

Using Excel 2007 with 3 calculation thread 45.03sec.

Comments

  • Anonymous
    August 17, 2006
    What I find interesting about that benchmark is that on a dual-core system with a single thread, the calculation time goes UP by a very significant percentatge (70 seconds to 89 seconds). Even though only one thread is used, I would not have expected to see poorer performance because Windows should have transferred some load that is nothing to do with Excel to the other processor. Is this a trend with all software or something peculiar to Excel?
  • Anonymous
    August 18, 2006
    Two quotes for the day  I am the final silenceThe last electrician alive And they called me the sparkle...
  • Anonymous
    August 20, 2006
    Hi Tim,

    The benchmark tests were done on multiple hardware configurations – Test 1 was run on single-core CPU while Test 2 was run on dual-core CPU.  We don't include the actual speed of the processors since this might be misleading without matching memory, motherboard specs etc.

    Test 1 shows that Excel 2003 and Excel 2007 have the same performance on the single-core CPU, while Test 2 shows that Excel 2007 can have a big performance advantage over Excel 2003 when using the multi-threaded calculation of Excel 2007 with a multi-core CPU.
  • Anonymous
    August 04, 2007
    PingBack from http://www.breezetree.com/process-flowchart-blog/index.php/excel-services-on-the-brain/