1

I am trying to solve a CPLEX problem using the Java library but the kernel keeps killing my process due to "Out of Memory". I've tried setting memory limits on the CPLEX program and I've tried limiting the time limit to 300 seconds but my kernel keeps saying:

Nov 18 07:44:01 node0 kernel: [4843935.635593] Out of memory: Kill process 4987 (java) score 979 or sacrifice child
Nov 18 07:44:01 node0 kernel: [4843935.635612] Killed process 4987 (java) total-vm:38252556kB, anon-rss:23959660kB, file-rss:764kB

The problem is that when a certain experiment in my CPLEX is unable to solve the problem (due to memory or time limits) that I want it to stop and continue the next experiment. However, the kernel keeps killing my entire Java process, preventing me from trying to solve the next experiments in line.

My CPLEX parameters are:

cplex.setParam(IloCplex.Param.TimeLimit, SimManager.timeLimit); // make sure it doesnt run longer than X minutes (less than 10)
cplex.setParam(IloCplex.Param.WorkMem, 4096); // limit to my server RAM
cplex.setParam(IloCplex.Param.MIP.Limits.TreeMemory, 4096); // limit to my server RAM
cplex.setParam(IloCplex.Param.MIP.Strategy.File, 0); // do not use file nodes, this should force CPLEX to give up once RAM memory is full and return a clean Out of Memory before solving the next problem

Does anyone know how I can avoid the kernel killing the Java process so I know if CPLEX failed to find a solution with the available time/RAM limit and so I can continue the next experiment in line?

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

uname -r
3.13.0-33-generic

Thank you!

0

You must log in to answer this question.

Browse other questions tagged .