Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
Expand all | Collapse all

Memory corruption with cplexamp 11.210. A bug?

  • 1.  Memory corruption with cplexamp 11.210. A bug?

    Posted 04/16/09 02:19 PM

    Originally posted by: SystemAdmin


    [Tavs said:]

    Hello everyone,

    I wrote [url=http://www.pastey.net/112381-28vz]this[/url]  AMPL script to solve a 2-objective binary integer problem.
    There are two parts. First one optimizes the first objective. The second, the repeat cycle, optimizes iteratively the second objective while fixing the value of the first one. At the end of each iteration the first objective is worsened.

    I tried the script on a small instance and it worked flawlessly.
    Then I tried a bigger instance, with approximatively 48000 binary variables, some of which are fixed in the model. Cplex crashed after the first part, i.e. at the first iteration in the second part.
    Apparently glibc, the gnu c runtime library, detected a memory corruption error, and printed the following message

    CPLEX 11.2.1: *** glibc detected *** cplexamp: malloc(): memory corruption: 0x000000006d17cf40 ***

    I'm using a linux box with 2.6.25 kernel on a x86_64 machine.
    It can't have run out of memory because executing the first part of the script required 12% of memory only.

    Do you have any idea on what  could cause that error? A bug in cplex? In glibc?
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Memory corruption with cplexamp 11.210. A bug?

    Posted 04/19/09 02:28 AM

    Originally posted by: SystemAdmin


    [EdKlotz said:]

    I wrote this  AMPL script to solve a 2-objective binary integer problem.
    There are two parts. First one optimizes the first objective. The second, the repeat cycle, optimizes iteratively the second objective while fixing the value of the first one. At the end of each iteration the first objective is worsened.

    I tried the script on a small instance and it worked flawlessly.
    Then I tried a bigger instance, with approximatively 48000 binary variables, some of which are fixed in the model. Cplex crashed after the first part, i.e. at the first iteration in the second part.
    Apparently glibc, the gnu c runtime library, detected a memory corruption error, and printed the following message

    Quote
    CPLEX 11.2.1: *** glibc detected *** cplexamp: malloc(): memory corruption: 0x000000006d17cf40 ***

    I'm using a linux box with 2.6.25 kernel on a x86_64 machine.
    It can't have run out of memory because executing the first part of the script required 12% of memory only.

    Do you have any idea on what  could cause that error? A bug in cplex? In glibc?




    It could be either of those, or it could be bad data given to AMPL, a bug in AMPL, or an error in your AMPL commands.
    To help narrow this down, try to reproduce the problem in interactive CPLEX if you have a CPLEX license as well
    as an AMPL/CPLEX license.  Before the AMPL solve command that results in the above glibc error, use the
    'file' directive among your cplex_options to generate a binary SAV file of the model, i.e.

    ampl: option cplex_options 'file 'glibccrash.sav <any other options you need>';
    ampl: solve;

    Then read the SAV file into interactive CPLEX, with the datacheck parameter turned on:

    CPLEX>  set read datacheck y
    CPLEX>  read glibccrash.sav


    Then optimize with the same parameter settings as you used within AMPL.  Can you reproduce the
    problem? 
    #CPLEXOptimizers
    #DecisionOptimization