2017-09-22 6 views
0

혼합 정수 선형 프로그래밍 모델에 pyomo를 사용하고 있습니다. 나는 pyomo에서 모델을 풀기 위해 cplex를 호출한다. 내가 풀고있는 문제는 커다. 병렬 처리가 필요하다.혼합 정수형 선형 프로그래밍을위한 pyomo 및 cplex 병렬 컴퓨팅

pyomo 또는 cplex에서 병렬을 설정해야합니까?

pyomo에서이 구문을 발견했지만 작동하지 않는 것 같습니다.

solver_manager = SolverManagerFactory('pyro') 

cplex에서 병렬로 설정하면이 구문을 어떻게 수정합니까? 병렬 컴퓨팅을 호출하는 것을 추가 하시겠습니까?

result = opt.solve(inst, tee=True, warmstart=True) 

어떤 방법으로 진행해야할지 모르겠다. 도움을 청합니다! 기본적으로

베스트, 레이

답변

0

는 CPLEX는 이미 병렬 스레드를 사용한다. 예를 들어, global thread count 매개 변수에 대한 문서에서, 우리가 가진 :이 매개 변수가 0 (영)을 설정하는 기본에있을 때

을하고 응용 프로그램이 더 콜백 또는 단지 정보 콜백을 포함하지 않는, CPLEX 사용할 수 있습니다 사용 가능한 모든 스레드; 즉, 최대 32 개의 스레드 또는 기계 코어 수 중 작은 쪽. 기계가 32 개 이상의 스레드를 제공하는 경우 을 사용하여이 매개 변수의 값을 늘릴 수 있습니다. pyomo 문서 here에서

, 그것은 말한다 :

솔버 (Pyomo 출력 을 한 후 즉, "솔버를 적용"),이 옵션을 사용하는 것이 종종 도움이됩니다에 문제가있는 경우 - 트랩되지 않고 솔버 출력을 표시하는 스트림 솔버.

이렇게하면 CPLEX 로그 출력이 화면에 표시됩니다. 다음과 같은 행을 찾으십시오.

최대 8 개의 스레드를 사용하는 병렬 모드입니다.

그렇지 않으면 어쩌면 실마리를 줄 수 있습니다.

+0

예, 병렬 모드 정보를 보여줍니다. 즉, 코드를 그대로두고 CPLEX를 사용하여 병렬 컴퓨팅을 직접 사용합니다. 고마워, rkersh. – Lei