Cplex의 스레드 수 문제
Sep 30 2020
나는 많은 유사한 문제를 해결하고 있으며 그것들을 비교하고 싶습니다. 이렇게하려면 하나의 스레드에서 실행되는 모든 것이 필요합니다. 스레드 수를 1로 설정해도 모델은 여전히 8 개의 스레드에서 실행됩니다. 이 문제에 직면 한 사람이 있습니까? 그것을 고칠 방법이 있습니까? (나는 파이썬과 함께 Cplex를 사용하고 있습니다)
감사합니다,
답변
1 OguzToragay Oct 01 2020 at 12:09
여기에 설명 된대로 컨텍스트를 사용해보십시오 . docplex를 사용한 모델링의 예 (아래 참조)는 다음 코드를 사용하여 cplex의 솔버 옵션에 대한 기본 설정을 변경할 수 있음을 나타냅니다.
context = Context.make_default_context()
context.cplex_parameters.threads = 1
model = Model(context=context
또는 코드는 다음과 같을 수 있습니다.
model = Model()
model.context.cplex_parameters.threads = 1
또는 Pyomo를 사용하는 경우 다음 솔버 옵션이 사용됩니다.
mysolver = SolverFactory('CPLEX')
mysolver.options['threads'] = 1
2 AlexFleischer Oct 01 2020 at 13:49
필요에 따라 동물원 예 를 변경하겠습니다 . (스레드 수)
from docplex.mp.model import Model
mdl = Model(name='buses')
mdl.parameters.threads=1
nbbus40 = mdl.integer_var(name='nbBus40')
nbbus30 = mdl.integer_var(name='nbBus30')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.minimize(nbbus40*500 + nbbus30*400)
mdl.solve()
print("threads = ",mdl.parameters.threads.get())
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
주는
threads = 1
nbBus40 = 6.0
nbBus30 = 2.0