Параллельное решение множества экземпляров с помощью pyomo - PullRequest
1 голос
/ 06 августа 2020

Я использую библиотеку Pyomo для решения проблемы оптимизации с оптимизатором Gurobi. У меня есть лицензия academi c на Gurobi, но, как правило, это не должно создавать никаких ограничений. Хочу параллельно оптимизировать модель с разными параметрами. Другими словами, у меня есть много экземпляров одной и той же модели, но с разными параметрами, которые можно решить независимо.

Я выполнил инструкцию, которую нашел на странице документации Pyomo относительно пирометрии и диспетчеризации ( вот ссылка). По сути, я запустил сервер имен Pyomo с pyomo_ns, затем диспетчерский сервер с dispatch_srvr, и, наконец, я запустил четыре экземпляра pyro_mip_server.

Когда я запускаю свой сценарий python, он работает . Ошибок не возникает. Проблема в том, что это занимает столько же времени, сколько и серийное выполнение. Я также отслеживал активность всех восьми ядер, которые есть у моего процессора, и только одно постоянно загружено на 100%. Это похоже на то, что одновременного выполнения не происходит вообще.

Я использую SolverManager, предоставляемый библиотекой Pyomo, для отправки из сценария Python различных экземпляров моей модели. Вы можете найти здесь руководство по его использованию.

Я использую Linux машину, последнюю версию LTS Ubuntu.

У кого-нибудь был такой опыт или кто-то знает, в чем проблема? Если вам нужна дополнительная информация, просто дайте мне знать :). Спасибо!

...