Originally posted by: IrvL
I am using CPLEX Optimization Studio 12.6.1 and the default search in CP Optimizer via OPL. I find that the default search runs out of memory very quickly when it goes parallel. I have an 8 core machine. So I wrote a very simple example that just counts solutions to the allDifferent() constraint. That model is attached.
The memory usage reported by CP Optimizer seems to grow linearly. Here are excerpts from the log that show the growth.
! Time = 10.07s, Explored branches = 9,636,628, Memory usage = 1.7 GB
! Time = 20.03s, Explored branches = 19,444,269, Memory usage = 3.3 GB
! Time = 20.19s, Explored branches = 19,602,967, Memory usage = 3.4 GB
! Time = 30.07s, Explored branches = 28,943,052, Memory usage = 5.0 GB
! Time = 40.10s, Explored branches = 34,125,154, Memory usage = 13.3 GB
! Time = 49.01s, Explored branches = 38,203,815, Memory usage = 20.0 GB
! Time = 50.19s, Explored branches = 38,793,022, Memory usage = 21.0 GB
The reported memory size is also reflected when looking at Windows Task Manager.
I'd like to use parallel search on my real model, but I'm getting nowhere due to this memory problem. I wrote the same example in C++ and it shows the same behavior, so how do I control the memory usage of CP Optimizer search when using parallel processors?
-Irv
#DecisionOptimization#OPLusingCPOptimizer