Contents Previous Next

Speeding Up Optimizations

Q: How can I speed up my RISKOptimizer optimizations?

A: There are a number of steps you can take to speed up a RISKOptimizer optimization:

  1. Make sure you have enough memory.

    For large models, RISKOptimizer can use a large amount of memory. If you do not have enough physical (i.e. RAM) memory, it will page information to the hard disk. This can drastically slow down your optimization. Watch your hard-drive usage light while your optimizations are running. If it is constantly writing or reading information from disk, you should consider increasing your system's memory.

  2. Close other applications.

    Multitasking is great, but other applications reduce the amount of available memory (see #1 above) and steal CPU cycles from RISKOptimizer. If you need to maximize the speed of your RISKOptimizer optimizations, try to close all unneeded applications.

  3. Don't run Excel or RISKOptimizer off your network server.

    Network traffic can slow things down. Try to install both Excel and RISKOptimizer locally, instead of running over a network. If you are running the network version of RISKOptimizer, choose the "Install Locally" option instead of the "Install Remotely" option.

  4. Turn off RISKOptimizer's Update Display option.

    This setting is located in the RISKOptimizer Options dialog. When turned on, this setting makes RISKOptimizer tell Excel to update its windows for every calculation of each trial solution. Depending on the model, this can account for a significant fraction of the optimization time. For maximum performance turn this option off.

  5. Close workbooks that are not used in the optimization.

    If you have workbooks open that have nothing to do with your optimization, close them. Each trial solution, RISKOptimizer tells Excel to recalculate everything. Your extraneous open workbooks may take significant time to calculate.

  6. Remove extraneous elements from your model

    Consider removing unnecessary graphs, graphics, and tables from your model. These may take significant time to calculate and update.

  7. Make sure you have enough space for temporary files.

    In RISKOptimizer 1.0.2 and earlier, the default temporary directory for RISKOptimizer is the same as the default windows temporary directory. In RISKOptimizer 1.0.4 and higher, RISKOptimizer's temporary directory defaults to a subdirectory of the DTOOLS directory (e.g. C:\DTOOLS\TEMP). You can always determine the temporary directory used by RISKOptimizer by looking in the DTOOLS.INI file in your windows directory. Go to that directory and clear out unused temporary files.

  8. Defragment the hard drive which contains the temporary directory.
  9. Use range constraints instead of hard constraints whenever possible.

    In general, hard constraints (specified in the Constraint Definition dialog) can not be evaluated until a particular trial has been calculated in Excel. If the hard constraint is not met, then that solution is tossed out by RISKOptimizer. Range constraints (which are specified for the recipe and budget solving methods in the Adjustable Cells dialog) are much more efficient because RISKOptimizer will never generate a trial solution that does not meet these constraints. See Also No Valid Solutions.

  10. Use Iteration constraints instead of Simulation constraints whenever possible.

    If you have hard constraints (specified in the Constraint Definition dialog) use an Iteration constraint option instead of a Simulation constraint wherever possible. Iteration constraints toss out trial solutions that do not meet the constraint on the first iteration where the constraint is not met. Simulation constraints wait until the end of the current simulation to check the constraint. If your constraint does not depend of the aggregate results of the current simulation (e.g. it does not depend of the variance of a cell or the mean value of a cell, etc) make the constraint an Iteration constraint, so bad simulations that do no meet the constraint can be tossed out early instead of wasting time running an entire simulation.