Authors: J Mark Horridge and Ken Pearson
Many modern Windows PCs now have two or more processors. These PCs cost little more than a PC with a single processor.
If you are solving a model accurately using GEMPACK, you will usually extrapolate from 2 or 3 multi-step calculations (for example, from Gragg 2-step, 4-step and 6-step calculations). The separate multi-step calculations are independent of each other. For example, if you are doing Gragg 2,4,6-step calculations, the 6-step calculation can be done independently of the 4-step calculation.
If you wish to solve a model by extrapolating from 2 or 3 multi-step calculations, you can now ask GEMPACK to carry out one or two of these multi-step calculations in parallel. In this way you may be able to solve the model significantly more quickly than previously.
Suppose, for example, you are solving using Gragg 2,4,6-step calculations. If you have two processors, you can ask the main program to carry out the 2-step and 4-step calculations. And you can ask the main program to run (on the other processor) a separate job which carries out the 6-step calculation. When that 6-step calculation is finished, the main program will read the results from the 6-step calculation and then combine these results with the results of the 2-step and 4-step calculations to do the extrapolation and produce the usual results. We refer to the main program as the "master" and to the run which carries out the 6-step calculation in parallel as "the servant". Since the 6-step calculation probably only takes as long as the 2-step followed by the 4-step, this will approximately halve the total elapsed time required to solve the model.
If you have more than two processors, you can ask the master to run two servant programs.
When you run two or three calculations in parallel (one master and one or two servants), each program requires about the same amount of memory. If your model takes about 500MB of memory to solve normally, you will need about 1000MB to run one servant or about 1500MB to run two servants. If you don't have this much memory, the servants and/or the master will be running in virtual memory (which is very slow).
The new 64-bit processors (combined with a 64-bit version of Windows) are interesting in this context since they are able to address more than 2GB of memory. [2 gigabytes of memory is effectively the maximum which can be addressed by any program under 32-bit Windows XP and Windows 2000.]
The version of GEMPACK which allows master/servant solving is available as a beta test version for customers from organisations which have a multi-user Source-Code Version of GEMPACK with expiring annual licences.
JEL classification: C68, C63
Keywords: GEMPACK software, Multi-Processor.
Working Paper Number C15-01 can be downloaded in PDF format. To print this you will need the Adobe Acrobat Reader.
Go to working papers page