I am running a MILP formulation (implemented in C++) with the Cplex Concert Technology 12.10, and I am trying to get the total elapsed time. So till the moment, I have tried three approaches: Be `cplex` my IloCplex object. 1. Using the `clock()` function from the `time.h` C++ library: ``` cplex.setParam(IloCplex::Param::TimeLimit, time_limit); time_t start = clock(); cplex.solve(); double total_time = (double) (clock() - start) / (double) CLOCKS_PER_SEC; ``` 2. Using the Cplex Concert function `getTime()`: ``` cplex.setParam(IloCplex::Param::TimeLimit, time_limit); cplex.solve(); double total_time = cplex.getTime(); ``` 3. Using the Cplex Concert parameter `ClockType`: ``` cplex.setParam(IloCplex::Param::TimeLimit, time_limit); cplex.setParam(IloCplex::Param::ClockType, 2); cplex.solve(); double total_time = cplex.getTime(); ``` My code **does not** make use of any callbacks (informational callback neither), and does not set any value to the Cplex Concert parameter `Threads`, i.e., the piece of code `cplex.setParam(IloCplex::Param::Threads, n);` is not executed. Since such piece of code is not executed, then (according to the Cplex Concert official [documentation][1]) my code is using all available threads: > When this parameter is at its default setting 0 (zero), and your > application includes no callbacks or only an informational callback, > CPLEX can use all available threads. The problem that I am facing is that in all these three approaches the `total_time` presents a wrong value. For example, if I set the variable `time_limit` to `120`, i.e., set the optimization time limit to `120` seconds, then the variable `total_time` presents a value much bigger than the expected one, such as `892.322`. So, I'd like to know if anyone already faced this problem before. Thank you. [1]: https://www.ibm.com/support/knowledgecenter/SSSA5P_12.8.0/ilog.odms.cplex.help/CPLEX/Parameters/topics/Threads.html