Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  UNEXPECTED ERROR using oplrun

    Posted 10/03/09 01:21 AM

    Originally posted by: SystemAdmin


    [xplorr said:]

    I have implemented a Column Generation model and managed to run a few iterations with it in OPL IDE 6.3.
    Then, the IDE report an internal error: "not enough memory".
    I checked every object which is instantiated with "new" in the loop, and made sure "end()" is properly
    called like follows.


    ...
    { //inside the loop of resolving the master problem
    ...
    { //inside the loop for solving multiple subproblems
    subOpl = new IloOplModel(subDef,subCplex);
    subOpl.addDataSource(subData1);
    subData = new IloOplDataElements();
    subData.mu=masterOpl.mu;
    ...
    subOpl.addDataSource(subData);
    subOpl.generate();

    if ( subCplex.solve() &&
    subCplex.getObjValue() <= -RC_EPS) {<br /> insert = true;
    masterData.patterns.add(k,subOpl.R.solutionValue);
    }

    subData.end();
    subOpl.end();
    } //end the loop for solving multiple subproblems

    if(!insert){
    writeln("No new good pattern, stop.");
    break;
    }
    masterOpl.end()
    masterOpl = new IloOplModel(masterDef,masterCplex);
    masterOpl.addDataSource(masterData);
    masterOpl.generate();
    } //end the loop of resolving the master problem



    But this didn't solve the problem.

    I guessed it's just the problem size and the overhead of running OPL IDE 6.3,
    So I turned to oplrun. However, using the same set of model and data files, oplrun can not even finish
    one full round. It bailed out while trying to re-extract master problem after a few columns have been
    added:


    masterOpl.generate();


    The error information is simply:

    ### UNEXPECTED ERROR ...


    I monitored memory usage of oplrun with windows task manager. Its memory footage never exceed 100 MB.

    Will really appreciate any hint on what may lead to the different behaviors of OPL IDE and oplrun.exe
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: UNEXPECTED ERROR using oplrun

    Posted 10/05/09 02:45 PM

    Originally posted by: SystemAdmin


    [jfk said:]

    Hello there,
    you can try the following things:
    1. have you used oplrun with -deploy?
    2. you can explore the (memory) settings for OPL IBM ILOG OPL V6.3 > OPL IDE > IDE Reference > OPL IDE memory allocation


    I hope it helps

    cheers
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: UNEXPECTED ERROR using oplrun

    Posted 10/07/09 03:48 AM

    Originally posted by: SystemAdmin


    [xplorr said:]

    jfk:

    Thanks, for the suggestion

    I tried the "-deploy" option of oplrun, but it doesn't work. I have same problem - "### UNEXPECTED ERROR ", while the memory consumption is never higher than 100MB.

    I also tried to tweak the memory allocation option in the configuration file ("oplide.ini"). It seems that the higher I set the value for "-Xmx", the less memory oplide.exe is able to consume. I was able to let oplide.exe consume upto 1560MB of memory with "-Xmx200m", but it still can not finish running the model successfully. It ended up with either ILOG CPLEX or ILOG Concert Technology complaining about "not enough memory".
    I'm pretty sure that the added columns do not occupy much memory.I have only generated 146 patterns and each has 12936 integer variables. So, there must be some memory leak.

    Does it have to do with using multiple calls to IloOplModel::addDataSource?
    Or is it a compatibility problem under windows 7?






    #DecisionOptimization
    #OPLusingCPLEXOptimizer