Skip to content

without solver initialization -> pre-initialized #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 45 additions & 45 deletions Power Grid Model Benchmark.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
"\n",
"The notebook runs a power flow calculation with the same input data in `power-grid-model` and `pandapower`. It runs the following calculations:\n",
"\n",
"* Single calculation with solver initialization.\n",
"* Single calculation without solver initialization (using pre-cached internal matrices).\n",
"* Single calculation.\n",
"* Pre-initialized single calculation (using pre-cached internal matrices).\n",
"* Time-series calculation\n",
"* N-1 calculation\n",
"\n",
Expand Down Expand Up @@ -112,10 +112,10 @@
" np.zeros(shape=(8, 5), dtype=np.float64),\n",
" columns=['PGM Linear Impedance', 'PGM Linear Current' ,'PGM Newton-Raphson', 'PGM Iterative Current', 'PandaPower Newton-Raphson'],\n",
" index=[\n",
" 'Symmetric calculation with solver initialization',\n",
" 'Symmetric calculation without solver initialization',\n",
" 'Asymmetric calculation with solver initialization',\n",
" 'Asymmetric calculation without solver initialization',\n",
" 'Symmetric calculation',\n",
" 'Pre-initialized Symmetric calculation',\n",
" 'Asymmetric calculation',\n",
" 'Pre-initialized Asymmetric calculation',\n",
" 'Time series symmetric calculation',\n",
" 'Time series asymmetric calculation',\n",
" 'N-1 symmetric calculation',\n",
Expand Down Expand Up @@ -310,8 +310,8 @@
"metadata": {},
"outputs": [],
"source": [
"benchmark_pgm_power_flow(symmetric=True, calculation_type='Symmetric calculation with solver initialization', with_intialization=True)\n",
"pgm_result = benchmark_pgm_power_flow(symmetric=True, calculation_type='Symmetric calculation without solver initialization', with_intialization=False)\n"
"benchmark_pgm_power_flow(symmetric=True, calculation_type='Symmetric calculation', with_intialization=True)\n",
"pgm_result = benchmark_pgm_power_flow(symmetric=True, calculation_type='Pre-initialized Symmetric calculation', with_intialization=False)\n"
]
},
{
Expand All @@ -333,13 +333,13 @@
"start = time.time()\n",
"pp.runpp(pp_net, algorithm='nr', calculate_voltage_angles=True, distributed_slack=True, lightsim2grid=use_lightsim2grid)\n",
"end = time.time()\n",
"summary_df.loc['Symmetric calculation with solver initialization', 'PandaPower Newton-Raphson'] = end - start\n",
"summary_df.loc['Symmetric calculation', 'PandaPower Newton-Raphson'] = end - start\n",
"\n",
"# second calculation with existing solver\n",
"# second calculation with pre-initialized solver\n",
"start = time.time()\n",
"pp.runpp(pp_net, algorithm='nr', calculate_voltage_angles=True, distributed_slack=True, lightsim2grid=use_lightsim2grid)\n",
"end = time.time()\n",
"summary_df.loc['Symmetric calculation without solver initialization', 'PandaPower Newton-Raphson'] = end - start"
"summary_df.loc['Pre-initialized Symmetric calculation', 'PandaPower Newton-Raphson'] = end - start"
]
},
{
Expand Down Expand Up @@ -386,8 +386,8 @@
"metadata": {},
"outputs": [],
"source": [
"benchmark_pgm_power_flow(symmetric=False, calculation_type='Asymmetric calculation with solver initialization', with_intialization=True)\n",
"pgm_result = benchmark_pgm_power_flow(symmetric=False, calculation_type='Asymmetric calculation without solver initialization', with_intialization=False)"
"benchmark_pgm_power_flow(symmetric=False, calculation_type='Asymmetric calculation', with_intialization=True)\n",
"pgm_result = benchmark_pgm_power_flow(symmetric=False, calculation_type='Pre-initialized Asymmetric calculation', with_intialization=False)"
]
},
{
Expand All @@ -409,13 +409,13 @@
"start = time.time()\n",
"pp.runpp_3ph(pp_net, algorithm='nr', calculate_voltage_angles=True, distributed_slack=True, lightsim2grid=use_lightsim2grid)\n",
"end = time.time()\n",
"summary_df.loc['Asymmetric calculation with solver initialization', 'PandaPower Newton-Raphson'] = end - start\n",
"summary_df.loc['Asymmetric calculation', 'PandaPower Newton-Raphson'] = end - start\n",
"\n",
"# second calculation with existing solver\n",
"# second calculation with pre-initialized solver\n",
"start = time.time()\n",
"pp.runpp_3ph(pp_net, algorithm='nr', calculate_voltage_angles=True, distributed_slack=True, lightsim2grid=use_lightsim2grid)\n",
"end = time.time()\n",
"summary_df.loc['Asymmetric calculation without solver initialization', 'PandaPower Newton-Raphson'] = end - start\n"
"summary_df.loc['Pre-initialized Asymmetric calculation', 'PandaPower Newton-Raphson'] = end - start\n"
]
},
{
Expand Down Expand Up @@ -1047,31 +1047,31 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Symmetric calculation with solver initialization</th>\n",
" <th>Symmetric calculation</th>\n",
" <td>0.000674</td>\n",
" <td>0.000581</td>\n",
" <td>0.001120</td>\n",
" <td>0.000714</td>\n",
" <td>0.018997</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Symmetric calculation without solver initialization</th>\n",
" <th>Pre-initialized Symmetric calculation</th>\n",
" <td>0.000271</td>\n",
" <td>0.000272</td>\n",
" <td>0.000758</td>\n",
" <td>0.000432</td>\n",
" <td>0.015893</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Asymmetric calculation with solver initialization</th>\n",
" <th>Asymmetric calculation</th>\n",
" <td>0.001913</td>\n",
" <td>0.001567</td>\n",
" <td>0.003933</td>\n",
" <td>0.001666</td>\n",
" <td>0.888648</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Asymmetric calculation without solver initialization</th>\n",
" <th>Pre-initialized Asymmetric calculation</th>\n",
" <td>0.000906</td>\n",
" <td>0.000655</td>\n",
" <td>0.003089</td>\n",
Expand Down Expand Up @@ -1116,50 +1116,50 @@
],
"text/plain": [
" PGM Linear Impedance \\\n",
"Symmetric calculation with solver initialization 0.000674 \n",
"Symmetric calculation without solver initializa... 0.000271 \n",
"Asymmetric calculation with solver initialization 0.001913 \n",
"Asymmetric calculation without solver initializ... 0.000906 \n",
"Symmetric calculation 0.000674 \n",
"Pre-initialized Symmetric calculation 0.000271 \n",
"Asymmetric calculation 0.001913 \n",
"Pre-initialized Asymmetric calculation 0.000906 \n",
"Time series symmetric calculation 0.263931 \n",
"Time series asymmetric calculation 0.947188 \n",
"N-1 symmetric calculation 0.481238 \n",
"N-1 asymmetric calculation 1.363434 \n",
"\n",
" PGM Linear Current \\\n",
"Symmetric calculation with solver initialization 0.000581 \n",
"Symmetric calculation without solver initializa... 0.000272 \n",
"Asymmetric calculation with solver initialization 0.001567 \n",
"Asymmetric calculation without solver initializ... 0.000655 \n",
"Symmetric calculation 0.000581 \n",
"Pre-initialized Symmetric calculation 0.000272 \n",
"Asymmetric calculation 0.001567 \n",
"Pre-initialized Asymmetric calculation 0.000655 \n",
"Time series symmetric calculation 0.267153 \n",
"Time series asymmetric calculation 0.472705 \n",
"N-1 symmetric calculation 0.511463 \n",
"N-1 asymmetric calculation 1.264282 \n",
"\n",
" PGM Newton-Raphson \\\n",
"Symmetric calculation with solver initialization 0.001120 \n",
"Symmetric calculation without solver initializa... 0.000758 \n",
"Asymmetric calculation with solver initialization 0.003933 \n",
"Asymmetric calculation without solver initializ... 0.003089 \n",
"Symmetric calculation 0.001120 \n",
"Pre-initialized Symmetric calculation 0.000758 \n",
"Asymmetric calculation 0.003933 \n",
"Pre-initialized Asymmetric calculation 0.003089 \n",
"Time series symmetric calculation 0.709902 \n",
"Time series asymmetric calculation 3.288390 \n",
"N-1 symmetric calculation 1.022064 \n",
"N-1 asymmetric calculation 3.805486 \n",
"\n",
" PGM Iterative Current \\\n",
"Symmetric calculation with solver initialization 0.000714 \n",
"Symmetric calculation without solver initializa... 0.000432 \n",
"Asymmetric calculation with solver initialization 0.001666 \n",
"Asymmetric calculation without solver initializ... 0.000886 \n",
"Symmetric calculation 0.000714 \n",
"Pre-initialized Symmetric calculation 0.000432 \n",
"Asymmetric calculation 0.001666 \n",
"Pre-initialized Asymmetric calculation 0.000886 \n",
"Time series symmetric calculation 0.401892 \n",
"Time series asymmetric calculation 0.929971 \n",
"N-1 symmetric calculation 0.603250 \n",
"N-1 asymmetric calculation 1.701366 \n",
"\n",
" PandaPower Newton-Raphson \n",
"Symmetric calculation with solver initialization 0.018997 \n",
"Symmetric calculation without solver initializa... 0.015893 \n",
"Asymmetric calculation with solver initialization 0.888648 \n",
"Asymmetric calculation without solver initializ... 0.180443 \n",
"Symmetric calculation 0.018997 \n",
"Pre-initialized Symmetric calculation 0.015893 \n",
"Asymmetric calculation 0.888648 \n",
"Pre-initialized Asymmetric calculation 0.180443 \n",
"Time series symmetric calculation 18.355417 \n",
"Time series asymmetric calculation 229.896856 \n",
"N-1 symmetric calculation 15.211173 \n",
Expand Down Expand Up @@ -1198,31 +1198,31 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th id=\"T_12be5_level0_row0\" class=\"row_heading level0 row0\" >Symmetric calculation with solver initialization</th>\n",
" <th id=\"T_12be5_level0_row0\" class=\"row_heading level0 row0\" >Symmetric calculation</th>\n",
" <td id=\"T_12be5_row0_col0\" class=\"data row0 col0\" >28.17x</td>\n",
" <td id=\"T_12be5_row0_col1\" class=\"data row0 col1\" >32.70x</td>\n",
" <td id=\"T_12be5_row0_col2\" class=\"data row0 col2\" >16.97x</td>\n",
" <td id=\"T_12be5_row0_col3\" class=\"data row0 col3\" >26.60x</td>\n",
" <td id=\"T_12be5_row0_col4\" class=\"data row0 col4\" >1.00x</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_12be5_level0_row1\" class=\"row_heading level0 row1\" >Symmetric calculation without solver initialization</th>\n",
" <th id=\"T_12be5_level0_row1\" class=\"row_heading level0 row1\" >Pre-initialized Symmetric calculation</th>\n",
" <td id=\"T_12be5_row1_col0\" class=\"data row1 col0\" >58.73x</td>\n",
" <td id=\"T_12be5_row1_col1\" class=\"data row1 col1\" >58.47x</td>\n",
" <td id=\"T_12be5_row1_col2\" class=\"data row1 col2\" >20.97x</td>\n",
" <td id=\"T_12be5_row1_col3\" class=\"data row1 col3\" >36.81x</td>\n",
" <td id=\"T_12be5_row1_col4\" class=\"data row1 col4\" >1.00x</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_12be5_level0_row2\" class=\"row_heading level0 row2\" >Asymmetric calculation with solver initialization</th>\n",
" <th id=\"T_12be5_level0_row2\" class=\"row_heading level0 row2\" >Asymmetric calculation</th>\n",
" <td id=\"T_12be5_row2_col0\" class=\"data row2 col0\" >464.63x</td>\n",
" <td id=\"T_12be5_row2_col1\" class=\"data row2 col1\" >567.06x</td>\n",
" <td id=\"T_12be5_row2_col2\" class=\"data row2 col2\" >225.96x</td>\n",
" <td id=\"T_12be5_row2_col3\" class=\"data row2 col3\" >533.46x</td>\n",
" <td id=\"T_12be5_row2_col4\" class=\"data row2 col4\" >1.00x</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_12be5_level0_row3\" class=\"row_heading level0 row3\" >Asymmetric calculation without solver initialization</th>\n",
" <th id=\"T_12be5_level0_row3\" class=\"row_heading level0 row3\" >Pre-initialized Asymmetric calculation</th>\n",
" <td id=\"T_12be5_row3_col0\" class=\"data row3 col0\" >199.11x</td>\n",
" <td id=\"T_12be5_row3_col1\" class=\"data row3 col1\" >275.61x</td>\n",
" <td id=\"T_12be5_row3_col2\" class=\"data row3 col2\" >58.42x</td>\n",
Expand Down Expand Up @@ -1305,4 +1305,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
}
}