Solving the same problem repeatedly using multiple threads may produce different results, although optimal objective values will be the same. This is a well known side effect of the non-determinism introduced by using multiple threads: The operating system decides when a thread is serviced and in which order they are serviced. Moreover, in repeated runs, the threads are unlikely to be serviced in the same order each time.
But why does it affects the the computations? The explanation is as follows: Numerical computation are done in finite precision, hence rounding errors appear. This implies that the associative law
does not always hold, and that the order in which the computations are performed affects the result. In other words, since performing computations in multiple threads introduce a randomness in the order of the computations, the result is not deterministic.