I am trying to solve an NLP problem using CONOPT4. I have been recently experimenting with using different numbers of threads (by using the "option threads"), while keeping everything else exactly the same. However, I noticed that each time I was receiving a different solution when different number of threads where used.
I was wondering, is there any way to receive the same solution independently of how many threads are used to solve the problem? For your information, I am using CONOPT version 4.26.
Thanks in advance.
Solver related questions
2 posts • Page 1 of 1
I don't think so. Minute changes in the algorithms can have a significant effect. For convex problems this often shows in performance variability (google this term and you find good explanations why this happens) but for non-convex problems this can easily result in different local solution. If Conopt ends up in different local optima depending on some small changes, this tells you something about your problem/model, namely it is very sensitive to small input changes. In this case they come via computations via different number of threads but they can come in other forms (slightly different rounding of input data, permutations of rows and columns, ....). Perhaps you can make the model more robust.