AIMMS Knowledge Base Article - KB00009

Long execution times / bad performance

Summary

You can find the origin of large execution times with the AIMMS profiler. To decrease the execution time, you could use a faster solver, or handle the cause of the large execution time.

Symptoms

You are running some procedures for which the execution times are very large.

Cause

There are several possible reasons why the execution times of your model are large. The problem is to find the cause.

Resolution

There are several ways to decrease execution times.

ProfilerIn general it is good to have a look at the execution time of your model during development, even if it doesn't seem to be a problem for you at the moment. It is possible that it will become a problem when using larger data sets, or that your customer will have problems because they work on slower computers.

For checking on execution time AIMMS is equipped with a profiler. You can activate the profiler by selecting Profiler from the Tools – Diagnostic Tools menu. When the profiler is active there is a Profiler menu item and there are extra columns in the attribute windows of the identifiers. Now, when you run a procedure, for each statement that is executed the execution time is written in the extra columns. You can also see an overview of the execution times by selecting Results Overview from the Profiler menu.

For those statements that have a large execution time you should try to decrease the execution time. Maybe some statements are unnecessarily executed dense. Adding domain restrictions may reduce execution time in two ways. First, less tuples need to be calculated, and second, less tuples need to be generated in a math program. For more information about decreasing execution times, read the AIMMS Language Reference, part Sparse Execution. You can read more about the Profiler tool in the User's Guide.

Change/Upgrade solverAnother way that can decrease the computational time is to use a better solver or to use a newer version of the current used solver. For example when you use CBC or XA, you might get better and faster results when using CPLEX. Or when you use CPLEX 10.1 you could upgrade to CPLEX 12.6.3.