Hello CPLEX Experts,
I have run some of my problems in CPLEX 12.7 Cloud using the DropSolve. This was run after purchasing the 60 GB RAM Configuration. I have some questions related to its performance
1) Default CPLEX 12.7 parameters wasn't helpful at all. I have attached log file - "CPLEX DEFAULT" link text
2) I then disabled all the cuts and solved Root Relaxation using Barrier . The progress of solver was better than default but it has given Out of Memory Error. Please find the attachment "CUTS OFF CPLEX 12.7 LOG" and "Out of Memory" link text
3) I had solved this problem using my own technique in CPLEX old version and could reach the good solution faster. I first solved the LP relaxation first and then fixed some of the variables which are close to integer values and then solve the Original MIP with this as an initial solution. Please find the attachment "CPLEX old verison Heuristic -Log" link text
My first question is using CPLEX Parameters can I get the solution which I have got using the heuristics and how to avoid this out of memory problem ? Do I need to purchase a higher configuration in DOCLOUD which I cant see in the list of configuration for Pay-As-you go plan?
My Second question is to implement the technique which I use in CPLEX older version is it possible on the same JobID ? I don't wish to run three different jobs one for solving LP relaxation , one for solving with fixed variables and lastly for the original MIP with initial solution . Also this technique fails sometimes in closing the optimality gap and this also consumes huge amount of RAM.
If required I can share the problem file as well.
Answer by DanielJunglas (915) | Jan 16, 2017 at 02:26 AM
The best solution found by CPLEX should be available no matter how/why CPLEX stopped. This solution should be available in the "Results" tab. Is it not there in your case?
One thing you could try to avoid out of memory so early in the search is to reduce the number of threads. By default CPLEX will use 10 threads. Since each thread requires a deep copy of the model and your model is rather large, this can consume a significant amount of memory. I suggest to try running with CPX_PARAM_THREADS set to 9 or 8 and see if this works any better. You could also try to set CPX_PARAM_PROBE to more aggressive values to get an even smaller presolved model.
In DropSolve you can only have one solve per Job. I can see two different ways to get your heuristic working on the cloud:
Don't use DropSolve but the REST API and its Java and/or Python wrappers. With this you can easily create/control multiple jobs and basically write some small code that implements your strategy while performing all the solves on the cloud.
Implement everything (initial solve, rounding, fixed solve, solve with MIP start) in OPLScript and then drop the resulting .mod file to the cloud. Not sure if this is feasible in your case.
Would you be willing to share your model with the engine developers? Maybe we can take a closer look and suggest other alternatives to solve this model faster.
Thank you Daniel for your suggestions. Could you please provide us the link/email to share the model file. I shall gzip the file and send it.
Please send it to daniel(dot)junglas(at)de(dot)ibm(dot)com. If the file is too big for email we can work out something else.