CPLEX - same instance but different number of branch and bound nodes (and different execution times)

I am testing different algorithms (including CPLEX) to compare their running times. I have a 0-1 Integer Program model. Given a solution value z_0, I want to find a feasible 0-1 integer solution that satisfies this value. But when I run CPLEX (via AMPL), there is some randomness in how it behaves. For the same problem instance, the number of branch-and-bound nodes is significantly different in different runs of CPLEX (and therefore, the execution times are also significantly different). How to eliminate this randomness? Will fixing the branchdir and conflictalg options be sufficient?

Set these AMPL options before solving:

option reset_initial_guesses 1;
option send_statuses 0;

Also, add parallelmode=1 to your cplex_options string; or if you are not setting any cplex_options string yet, give this command before solving:

option cplex_options "parallelmode=1";

These should make CPLEX “deterministic” so that all runs on the same instance follow the same path.

(If you get an error message that CPLEX parameter parallelmode does not exist, then you’ll need to set

option solver cplexasl;

to get this to work. (This uses the same CPLEX, just a different interface.)

Thanks - but sorry - your suggestions are not working… Also, I should have said earlier that I am running the different CPLEX runs from inside a C program (using Ubuntu Linux) - that is, I have a for loop within C code such as

     for (run=1; run <= 20; run++) system("ampl file-Name.mod");

This ensures that each run is completely independent of the other runs… I have attached the basic model (after removing all option statements).

IP-feasibility-check.mod (36.3 KB)