Optimizing the run for large energy models

Hello, I´m experiencing the same issue with my runs
https://app.pollination.cloud/projects/arturo_reyes/demo/jobs/18aaed94-a7ff-4d74-8f5f-f767a5ed313f
on a previous one, it took 1 hour to report a failure to run, I went back and corrected some geometry problems, but it is still taking a long time on the second run.

Hi @Arturo_Reyes :wave:

Thanks for reporting your issue :raised_hands: Looking at that job in particular is looks like the simulation is actually taking 4 hours to run. If you look at the debug tab for the run and click on the run-simulation step you will see the logs. On line 126 of the logs EnergyPlus indicates it took about 4 hours to run.

Do you have a benchmark for how long it would take to execute this simulation on your local PC? The longer compute time can be due to 3 factors which @chris will be best placed to help you understand.

  1. We only allocate 1 CPU per step when executing cloud runs. As a result an energy simulation for large models might run slower on the cloud than on your local PC. You can check out our blog post to better understand under what conditions your can use Pollination cloud to execute simulations faster. We are also planning to allow users to increase the number of CPUs per step in order to allow energy simulations to run faster on the cloud, although I don’t think we will be implementing this for few months at least :sweat_smile:.

  2. The model used is complex and will take a long time to execute an energy simulation

  3. The simulation parameters cause a very detailed energy simulation to be run which takes longer than a simpler monthly energy balance calculation

{
  "sizing_parameter": {
    "cooling_factor": 1.15,
    "heating_factor": 1.25,
    "type": "SizingParameter"
  },
  "terrain_type": "City",
  "timestep": 6,
  "north_angle": 324,
  "run_period": {
    "end_date": [
      12,
      31
    ],
    "start_day_of_week": "Sunday",
    "leap_year": false,
    "type": "RunPeriod",
    "start_date": [
      1,
      1
    ]
  },
  "type": "SimulationParameter",
  "simulation_control": {
    "do_system_sizing": true,
    "do_plant_sizing": true,
    "run_for_run_periods": true,
    "run_for_sizing_periods": false,
    "do_zone_sizing": true,
    "type": "SimulationControl"
  },
  "shadow_calculation": {
    "solar_distribution": "FullExterior",
    "calculation_frequency": 30,
    "calculation_method": "PolygonClipping",
    "maximum_figures": 15000,
    "type": "ShadowCalculation",
    "calculation_update_method": "Periodic"
  },
  "output": {
    "include_html": true,
    "outputs": [
      "AFN Zone Infiltration Air Change Rate",
      "AFN Zone Infiltration Sensible Heat Gain Energy",
      "AFN Zone Infiltration Sensible Heat Loss Energy",
      "AFN Zone Ventilation Sensible Heat Gain Energy",
      "AFN Zone Ventilation Sensible Heat Loss Energy",
      "Baseboard Electricity Energy",
      "Boiler NaturalGas Energy",
      "Chiller Electricity Energy",
      "Chiller Heater System Cooling Electricity Energy",
      "Chiller Heater System Heating Electricity Energy",
      "Cooling Coil Electricity Energy",
      "Cooling Tower Fan Electricity Energy",
      "District Cooling Chilled Water Energy",
      "District Heating Hot Water Energy",
      "Evaporative Cooler Electricity Energy",
      "Fan Electricity Energy",
      "Heating Coil Electricity Energy",
      "Heating Coil NaturalGas Energy",
      "Heating Coil Total Heating Energy",
      "Hot_Water_Loop_Central_Air_Source_Heat_Pump Electricity Consumption",
      "Humidifier Electricity Energy",
      "Pump Electricity Energy",
      "VRF Heat Pump Cooling Electricity Energy",
      "VRF Heat Pump Crankcase Heater Electricity Energy",
      "VRF Heat Pump Defrost Electricity Energy",
      "VRF Heat Pump Heating Electricity Energy",
      "Water Use Equipment Heating Energy",
      "Zone Air Relative Humidity",
      "Zone Electric Equipment Electricity Energy",
      "Zone Gas Equipment NaturalGas Energy",
      "Zone Ideal Loads Supply Air Total Cooling Energy",
      "Zone Ideal Loads Supply Air Total Heating Energy",
      "Zone Ideal Loads Zone Total Cooling Energy",
      "Zone Ideal Loads Zone Total Heating Energy",
      "Zone Infiltration Total Heat Gain Energy",
      "Zone Infiltration Total Heat Loss Energy",
      "Zone Lights Electricity Energy",
      "Zone Mean Air Temperature",
      "Zone Mean Radiant Temperature",
      "Zone Operative Temperature",
      "Zone People Total Heating Energy",
      "Zone VRF Air Terminal Cooling Electricity Energy",
      "Zone VRF Air Terminal Heating Electricity Energy",
      "Zone Ventilation Fan Electricity Energy",
      "Zone Ventilation Total Heat Gain Energy",
      "Zone Ventilation Total Heat Loss Energy",
      "Zone Windows Total Transmitted Solar Radiation Energy"
    ],
    "summary_reports": [
      "AllSummary"
    ],
    "reporting_frequency": "Hourly",
    "type": "SimulationOutput",
    "include_sqlite": true
  }
}
1 Like

EnergyPlus only uses one CPU for running the simulations so even if we provide more CPUs it shouldn’t change the speed in this particular case.

There is not much that we can do for running an energy simulation faster unless we either breakdown the model into smaller pieces, like running each floor in parallel which means you will ignore the possible heat transfer between different floors.

Or to breakdown the simulation period into smaller part - run each month in parallel - which in this case you will get inconsistencies between the months because of the different warmup period. This should work fine if you are looking for a monthly/annual calculation instead of hourly.

@chris, can you think of any other option to speed up the run for larger models.

@Arturo_Reyes, how long does it take for you to run this model locally with the same parameters?

In this particular case, I incorporated the AFN because I wanted to get Air Change Rates to show the effectivity of natural ventilation for a LEED compliance model. It took more than 8 hours to run in my computer. I´ve been running the model without the AFN in an hour or so. I´m trying to reflect the effect of concrete thermal mass in the simulation, that’s why I´ve been running the entire model.

To be honest it is a model that I am not planning to run more than a couple of times. So 4 hours compared to 8 on my pc seems like a good compromise!.

Thanks for the great work, you guys rock!!!

1 Like

Glad to hear it, @Arturo_Reyes . The AFN is definitely one of those factors that can greatly increase simulation time (just like solar distribution).

If you ever need a shorter runtime in the future, the only way to really parallelize an energy simulation is to simulate each story as a separate model as Mostapha suggested. The Dragonfly Model schema (and corresponding recipes) have built-in capabilities to split up the energy model this way. In theory, people have also tried running each month of the year as a separate simulation but, because EnergyPlus takes a while to “warm up”, this really doesn’t end up significantly decreasing the runtime.

If you want to give the dragonfly plugin a try, you can assign simple natural ventilation to a dragonfly energy model but we don’t yet have streamlined methods to use the AFN with dragonfly yet. If this ends up being something that you run often, we can bump up the priority of adding AFN support to dragonfly.

1 Like

Hi @chris ,

Thanks for the suggestions. I´ll give dragonfly a try for sure. We are trying to push the natural and hybrid ventilation agenda in buildings in Mexico and the AFN really helps backing up design strategies, so it sounds like it would be very useful to have it integrated to dragonfly. I´ll start experimenting as it is now.

Thanks again

1 Like