haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Quintiq file version 2.0
#parent: #root
Method GetNumberOfThreads () as Number
{
  TextBody:
  [*
    // nr of threads used 
    cplexnrofthreadsparamnumber := 1067; 
    nrthreads := this.LibOBT_RunTask().LibOBT_Benchmarker().LibOBT_BenchmarkerParameter().TotalThreadsAllowed(); // assume threads = total allowed if some level does not specify
    
    if ( forall( this.Strategy(), 
                 StrategyLevel, 
                 level, 
                 exists( level, SolverSettingGroup.SolverSetting, ss, true, ss.ParameterNumber() = cplexnrofthreadsparamnumber ) ) ) // every level has threads specified? then set to max over all levels
    {
      nrthreads := max(  this.Strategy(), StrategyLevel.SolverSettingGroup.SolverSetting, ss, ss.ParameterNumber() = cplexnrofthreadsparamnumber, [Number] ss.ParameterValue() );   
    }
    
    return nrthreads;
  *]
  InterfaceProperties { Accessibility: 'Module' }
}