Originally posted by: SystemAdmin
Right now, I tested everything you told me on the Win7 32 bit machine with 3GB memory and made the following observations:
-
When I run the program without setting the parallel thread parameter to 1, after like 1450 nodes the the memory usage is about 95% and the program stops with the error:
cplex.exceptions.CplexSolverError: CPLEX Error 1234: Failed to create parallel thread
The thread and handle counter stays quite constant (840 resp. 19600) during the operation.
-
When I run the program WITH setting the parallel thread parameter to 1 right in front of every solve()-call, the program stops after like 1500 nodes (so very slightly more) and prints a different error:
cplex.exceptions.CplexSolverError: CPLEX Error 1001: Out of memory.
Thread and handle counter also stay almost the same during the operation.
So, its obviously a memory problem. But why do I get different errors?
I am currently deleting problems I don't need anymore by just deleting the reference to them (del prob; remember I am using Python), coz as far as I know there is no method similiar to CPXfreeprob for deleting a problem, is it?
For examining this problem I made run with this program:
a=[]
gc.enable()
for i in range(3000):
print i
a.append(cplex.Cplex())
del a[0]
gc.collect()
print a
Although I am deleting the reference to the object and using the garbage collector, the memory usage is growing constantly.
Do you think this is the same problem as reported in this thread, I just found?
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14423587 So, to sum up my questions:
-
Why do I get different error messages, when I turn on / off parallel mode?
-
How can I delete a cplex in Python to free space?
-
Is the not working delete procedure possibly a bug in version 12.1 I have to fix?
#CPLEXOptimizers#DecisionOptimization