Variability in performance across platforms for mathematical programming problems


There are several factors that can cause performance to vary on different platforms (computing hardware and operating system) when using the OPTMODEL, OPTLP, OPTMILP, OPTQP, and NLP procedures for mathematical programming. Performance of these procedures can be expected to vary on different platforms even when submitting the same code using the same algorithm. Below are some of the factors that can affect performance.

Performance variation due to platform differences:
  • Hardware differences such as processor speed and the amount of memory (RAM) available affect performance. Assuming the solver takes the same path, a problem may be solved faster on a machine with a faster processor and more memory.
  • Compiled code may be slightly different because of the difference in compilers and the operating system.
Performance variation due to solver differences:
Solver differences can have a significant impact on performance, even on the same platform. For example:
  • Permuting the rows and columns of the instance
  • Using a different seed for random number generators
  • Making alternate choices at degenerate pivots in the simplex algorithm
  • Computing slightly different floating point values

Two runs of the solver on the same platform will yield the same path since the machines are the same. However, the solver can make different choices on different platforms resulting in different paths and performance.

Statistical procedures that utilize the optimization solvers in SAS/OR may also encounter these platform differences.

In order to determine performance gains and differences on different platforms, the procedures should be tested on several different types of mathematical programming problems.