-1

The power flow library PyPSA uses Pyomo. I am trying to reduce the cost of each linear optimal power flow simulation.

I read through the Pyomo docs. Nothing sticks out at me yet. Perhaps it is not possible to split up the processing when solving linear optimisation problems.

Ubuntu 19.04, i5-4210U 1.70 GHz, 8 Gb RAM

mbards
  • 43
  • 3
  • 10
  • We need more infos on *what* exactly you want to parralelize. Do you have many independant problems to solve at the same time, or do you have a bigger problem that solves on only one CPU core, that you want to solve separetedly? – V. Brunelle Jun 27 '19 at 01:43
  • I have a bigger problem that current solves on only one CPU core. I want to know if there is a quick option to tell Pyomo to use more cores. The objective function being solved can be found in [this PyPSA paper - pg 4](https://arxiv.org/pdf/1707.09913.pdf). I would not be surprised if splitting up the solving over multiple cores requires splitting up the problem from the start. Just wondering if I can get some free lunch. – mbards Jun 27 '19 at 16:26
  • This is generally handled by the solver. Do you know which solver is being used by Pyomo in PyPSA? – V. Brunelle Jun 27 '19 at 16:33
  • gplk and cbc appear to be the most common – mbards Jun 27 '19 at 23:23

1 Answers1

1

When you talk about processing there are two things to consider. Processing to write the .lp file and processing to solve the problem with an optimization solver.

First, writing the .lp file is to my knowledge not yet parallelized in Pyomo. PyPSA developers created Linopy to parallel the processing to reduce RAM requirements and increase the speed.

Second, parallelizing the solver processing depends on the solver. PyPSA-Eur has an example of integration for that for Gurobi, and CPLEX. The performant open-source solver HiGHS can also something like that see here.

Max Parzen
  • 11
  • 1