Параметры для ограничения памяти для CPLEX - PullRequest
0 голосов
/ 09 октября 2019

Моя модель MIP в OPL CPLEX V12.9 в настоящее время работает с небольшим объемом данных, но с большим импортом базы данных из Excel, после работы в течение 1 часа я получаю следующую ошибку:

Ошибка 1001. Недостаточно памяти.

Я уже знаю, что могу изменить некоторые параметры в .ops

Я уже пытался установить следующие параметры: CPX_PARAM_WORKMEM = 1920.0 (default 2048.0) CPX_PARAM_NODEFILEIND = 3 (default Node file in memory and compressed)

и после этого я получил:

Ошибка 1422: не могу открыть файл% s для записи

Поэтому я изменил параметр: CPX_PARAM_WORKDIR до C:\Users\..\opl

Но мое главное беспокойство связано с проблемой памяти. Я использую Surface 4 Pro с 4 ГБ оперативной памяти и 1867 МГц и процессором i5-6300U.

Во время работы модели мой процессор также достигает 99-100%.

Какие параметры я могу изменить, чтобы решить проблему с памятью, и на какое значение я должен изменить эти параметры?

1 Ответ

1 голос
/ 09 октября 2019

Ожидается, что процессор переходит почти на 100%. На самом деле, это то, что вы хотите. Вы хотите, чтобы CPLEX использовал всю мощь вашей машины. Загрузка ЦП должна быть не связана с проблемами с памятью - если операционная система не переставает работать как сумасшедшая.

Параметры, которые вы установили для workmem и nodefileind, выглядят правильно и, учитывая, что вы получили «сбой записи», кажется, что ониактивныТак что это лучшее, что вы можете сделать на данный момент. Если ваша модель имеет множество ограничений, вы можете попробовать установить CPX_PARAM_DPRIIND в 1. Это позволяет использовать меньшие узлы дерева поиска и может сэкономить некоторую память. Другой вариант - ограничить параметр CPX_PARAM_TRELIM . Это остановит CPLEX, как только размер дерева (на диске и в памяти) превысит этот предел. Обратите внимание, что это остановит CPLEX, несмотря ни на что. Вы получите лучшее решение CPLEX, найденное до этого момента, оно не обязательно является оптимальным решением. Если вам не хватает памяти, потому что в дереве огромное количество узлов, вы можете запустить такие параметры, как предварительное разрешение узлов, зондирование, сильное ветвление и т. Д., Чтобы CPLEX проводил больше работы для каждого узла, чтобы число обрабатываемых узлов моглопотенциально может быть уменьшен.

Вы можете обновить свой вопрос с помощью журнала движка, возможно, это дает другие / новые идеи.

...