User Tools

Site Tools


installation:what_is_the_recommended_machine_processing_speed_for_running_gams

What is the recommended machine processing speed for running GAMS?

Our customers run models of all sizes and levels of difficulty. For some real applications, the models are small and can be solved quickly on even an older, slower computer. Other customers solve models that take hours or even longer to solve. For them, purchasing the fastest computer available is important. Everyone prefers faster computers, of course.

Multiple cores

Many GAMS users find it beneficial to have at least two CPUs or a multicore CPU so that their machine can be responsive while running a demanding model. For several solvers (e.g., GAMS/CBC, GAMS/CPLEX, GAMS/GUROBI, GAMS/MOSEK, GAMS/XPRESS), the advantage is greater since they include a parallel option.

32bit vs 64bit

GAMS is available in a 32 bit and a 64 bit version for Windows. All other platforms are only available in 64 bit. The 64 bit Windows version requires a 64 bit version of Windows to operate properly - just a 64 bit processor is not sufficient. The 32 bit Windows version of GAMS will work on both versions of Windows, but the operating system limits the GAMS and solver process to approximately 1.7 GB (Windows 32 Bit) or approximately 4 GB (Windows 64 Bit). The 64 bit version of GAMS can address much more memory - only the (physically) available RAM will limit the size of your model. Please note that some solvers are not available as a 64 bit version and some NLP solvers still have a limit of 8 GB.

In general, you should not expect a major performance improvement from the 64 bit version. The benefit is being able to solve larger models. Please note that the 64bit version of GAMS may require up to 35% more RAM than the 32 bit version. Sometimes it may be advantageously to run the 32 bit version of GAMS on a 64 bit version of the operating system.

The free mem utility will tell you, how much memory is available to a process. It allocates memory in one MB chunks and stops when the OS refuses to provide more memory.

What computer should I buy for my model?

In general, this is difficult to say. What to choose also depends very much on where the bottleneck is. Is it GAMS that takes long time to compile your model, or is it a solver that takes long time to solve it?

The GAMS Base Module does currently not make use of multiple cores. So if the model is just big and complex and takes long to compile or execute in GAMS, then a fast CPU (in terms of high frequency) with fast memory access is helpful. Further, the profiling facility in GAMS (see option profile in Chapter C of the GAMS User's Guide) can be helpful to find bottlenecks in a GAMS program.

For GAMS, also a fast harddisk can be useful, since GAMS by default communicates with solvers via files. Especially if you have to solve a sequence of many small models, a solid state drive should be considered. Alternatively, you can try setting the GAMS solvelink option to 5. This enables in-memory communication with many of the solvers, but also consumes more memory.

Some solvers can make use of a multiple cores, even though a high frequency, large caches, and fast memory access should be a first priority. Since multithreading in a solver comes with additional overhead, one can usually not expect a linear speedup with the number of cores.

When using a 64bit operation system and GAMS version, then also having as much RAM as possible is good. Modern solvers can also swap to harddisk if running out of memory while solving large LPs or QPs. So a fast hard drive can also be useful.

The amount of memory required to solve a model is sometimes difficult to predict. For convex models (LPs, convex QPs, convex NLPs) or solvers that find only local optima (local NLP solvers, MCP solvers), the memory requirement usually depends on the size of the model (number of variables, equations, nonzeros) and numerical properties (matrix fill-in). For branch-and-bound based solvers (MIP solvers, global NLP solvers, many of the MINLP solvers), additionally the difficulty of the problem dictates memory requirement. That is, as more branch-and-bound tree nodes need to be enumerated, as more memory is required. Some solvers are also able to use the harddisk to store parts of the branch-and-bound tree (nodefileind option) when memory is low.

Summary

First priority should be a CPU with fast cores and fast memory access (maybe via large L2/L3 caches). CPUs with 2 or 4 cores are standard by today, having more than 8 cores may not pay off. Since RAM is cheap, something like 16 GB may be a good option, with a possibility to upgrade later.

installation/what_is_the_recommended_machine_processing_speed_for_running_gams.txt · Last modified: 2015/11/02 14:47 by admin