제가 IP 문제를 cplex로 돌리는 도중에 "concert exception: memory usage" 라는 에러 메시지 이후에 멈추는 데 저는 시간에 관계 없이 좀 더 풀어보고 싶습니다
제 생각엔 아무래도 할당 메모리를 늘려줘야 할 것 같은데
cplex.setParam을 이용해서 메모리를 늘려줄 수 있는지요?
댓글 3
유환주2008-01-10
사용하고 계신 버젼을 밝히지 않아서 최신 버젼을 기준으로 설명을 드립니다. . 실행중에 메모리가 고갈되는 경우에 MS Windows 계열인 경우에는 boot.ini를 조작해서 프로그램에 할당되는 메모리를 늘릴 수 있습니다. UNIX 계열인 경우에는 OS에서 시스템 보호를 위해서 할당 메모리를 제한하고 있으므로 관리자께 의뢰해서 수정하셔야 합니다. . 파라메타를 설정해도 상기의 이유로 한계치를 넘어가면 OS가 방어하므로 의도대로 작동하지 않을 수 있습니다. . 우선 2가지 파라메타를 사용해 보시기를 권합니다. . cplex.setParam(IloCplex::WorkMem,1024); //Default 128MB => 1024 메가바이트(1GB)를 할당하도록 변경한 예 입니다. . cplex.setParam(IloCplex::MemoryEmphasis,1); => 메모리 사용을 효율화해서 큰 문제를 풀 수 있습니다.
이상진2008-01-10
답변 감사드립니다
제가 사용하고 있는 버전은 cplex 9.x 버전이고 os는 window xp입니다
"cplex.setParam(IloCplex::MemoryEmphasis,1)"는 9.x 버전에서는 사용할 수 없는 것인가요?
유환주2008-01-10
CPLEX 9.1에서 사용 불가한 옵션 입니다. 고객사 사례에서 엄청나게 큰 문제라서 비슷한 경우가 있어서, MemoryEmphasis 사용으로 해결한 사례가 있었는데... 정말 아쉽네요. :-(