Method and system for multithread processing of spreadsheet chain calculations
AssigneeMicrosoft Corporation
InventorsBruce Jones, Chad Rothschiller, David Gainer, Jeffrey Duzak, Matthew Androski
Life of this patent
Estimating the term…
Abstract
Embodiments of the invention involve a method of concurrent processing of chain calculations using multiple processors each having a separate recalculation engine in a spreadsheet program. The operations basically include first determining a number of available processors, then allocating a recalculation engine to each available processor, distributing the formulas between the recalculation engines, and then concurrently evaluating the formulas distributed to each recalculation engine when a recalc operation is called for in the spreadsheet program.
Claims26
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;
- and
- evaluating the formulas distributed to each recalculation engine.
A method of processing a plurality of formulas in a spreadsheet program on an operating computing system having two processors, the method comprising:
- assigning a first recalculation engine to one of the two processors and a second recalculation engine to the other of the two processors;
- distributing each formula to one of the first and second recalculation engines;
- in each of the first and second recalculation engines:
- determining whether a first/next formula is a dependent formula;
- evaluating the first/next formula if the first/next formula is not dependent;
- if the first/next formula is dependent, determining a location of a supporting formula;
- if the supporting formula is in the same recalculation engine, moving the supporting formula ahead of the first/next formula;
- and
- evaluating the supporting formula.
A system for processing supporting and dependent formulas in a chain of formulas in a spreadsheet program comprising:
- a module for determining a number of available processors and allocating a recalculation engine to each available processor;
- a load control module for distributing the formulas between the recalculation engines;
- and
- a processing module for concurrently evaluating the formulas distributed to each recalculation engine.
A computer-readable medium containing computer executable instructions which when executed by a computer perform 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;
- and
- evaluating the formulas distributed to each recalculation engine.
A computer-readable medium containing computer executable instructions which when executed by a computer perform a method of processing a plurality of formulas in a spreadsheet program on an operating computing system having two processors, the method comprising:
- assigning a first recalculation engine to one of the two processors and a second recalculation engine to the other of the two processors;
- distributing each formula to one of the first and second recalculation engines;
- in each of the first and second recalculation engines:
- determining whether a first/next formula is a dependent formula;
- evaluating the first/next formula if the first/next formula is not dependent;
- if the first/next formula is dependent, determining a location of a supporting formula;
- if the supporting formula is in the same recalculation engine, moving the supporting formula ahead of the first/next formula;
- and
- evaluating the supporting formula.
Dependencies are inferred from the claim text.