When your model is large, the time taken to run a simulation can be quite long.
To see how long your simulation takes, add a statement CPU = yes ; to your
Command file and make a log file of the simulation. Search the log file for "CPU". This
will tell you not only how long the whole simulation takes but also which part is slow:
eg calculating the formulas and equations at the start, solving the matrix, doing the
updates etc.
If solving the matrix is taking a long time, trying changing the sparse linear
equation solving routines (MA48, MA28). If you are solving with MA48 (the default), try
using MA28 by adding a statement M28 = yes ; to your Command file. (See GPD-3
section 12.1.1 (Release 8.0 documents))
If your solution regularly says it is unable to re-use pivots, you can turn off
reusing pivots with a Command file statement NRP = yes ; (See GPD-3 section
12.3.)
Does your simulation make a few attempts to work out the values of MMNZ and MMNZ1?
Once you have run a simulation and you know approximately how big MMNZ will be, you can
use a Command file statement such as start with MMNZ= 3000000 ; where you should
replace 3000000 by the appropriate value for MMNZ. (See GPD-3 section 13.3.)
One thing which affects the speed of simulations is the condensation. Usually doing
more substitutions or backsolves will reduce the solve time. Look in your Information
file (.INF) to see how many components there are in the variables left in the condensed
model. If you have left in a variable with tens of thousands of components, substitute it
out. If you still want to see the values of the endogenous variables substituted out, you
can backsolve for them. (See section 3.8 of GPD-1.) However it is possible to condense your model too much.
If you are using automatic accuracy and your simulation is failing to reach the
required accuracy or some condition on the updated coefficients is not satisfied, the
program will reduce the subinterval length in an attempt to increase the accuracy.
Sometimes it can never reach the required accuracy and the subinterval length keeps
getting smaller and smaller. Try changing some of the accuracy statements. (See section
7.4 in GPD-3.)
If your model is too large for your computer's memory, some operating systems will
try paging to try to keep the simulation running instead of telling the user that there
is insufficient memory. See if you can reduce your memory
usage.
If you are using GEMSIM to solve large models, you may reduce your solution time by
using a TABLO-generated program. The time taken to solve the
matrix is the same in both cases but the time taken for calculating formulas, equations,
updates and backsolves is usually much shorter. You need the Source
code version of GEMPACK in order to use TABLO-generated programs.