US 7,533,139 B2
Method and system for multithread processing of spreadsheet chain calculations
Bruce Cordell Jones, Bellevue, Wash. (US); Chad B. Rothschiller, Edmonds, Wash. (US); David F. Gainer, Redmond, Wash. (US); Jeffrey J. Duzak, Redmond, Wash. (US); Matthew J. Androski, Bellevue, Wash. (US); and Duane Campbell, Sammamish, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Sep. 27, 2004, as Appl. No. 10/951,576.
Prior Publication US 2006/0069993 A1, Mar. 30, 2006
Int. Cl. G06F 7/00 (2006.01)
U.S. Cl. 708—200 19 Claims
OG exemplary drawing
 
1. A method of processing supporting and dependent formulas in a spreadsheet program comprising:
determining a number of available processors;
if the number of available processors is at least two, allocating a recalculation engine to each available processor;
distributing the formulas between the recalculation engines, wherein distributing the formulas comprises:
selecting a first formula;
randomly assigning the first formula to a random one of the recalculation engines; and
repeating the selecting and assigning operations for each next formula until all formulas are assigned to one of the recalculation engines;
evaluating the formulas distributed to each recalculation engine, wherein evaluating the formulas comprises:
selecting a first formula;
determining whether the first formula is a dependent formula or supporting formula;
if the first formula is a supporting formula, evaluating the formula;
if the first formula is a dependent formula, determining whether a supporting formula for this dependent formula is in the recalculation engine; and
if the supporting formula is in dependent formula is in the recalculating engine, then placing the supporting formula ahead of the first formula; and
displaying results of the evaluated formulas in cells of the spreadsheet, wherein the spreadsheet is displayed through the use of a display device.