Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question
2

Running EnergyPlus in Azure Batch

asked 2019-01-21 18:22:09 -0600

__grant_payne__'s avatar

updated 2019-01-22 14:18:32 -0600

Just wondering if anyone has tried to run EnergyPlus simulations in parallel in Azure Batch?

If so, are there any tips or tricks that helped you keep it going along?

I have so far figured out how to add E+ as an application and invoke it via a Task in Batch. I get this error, however:

Running "D:\batch\tasks\applications\energyplus8.1.02019-01-08-17-00\EnergyPlusV8-1-0\"EnergyPlus.exe

Input File : 1.idf

Output Files: D:\batch\tasks\workitems\EPThirt\job-1\TaskEPlus\wd\ IDD file : "D:\batch\tasks\applications\energyplus8.1.02019-01-08-17-00\EnergyPlusV8-1-0\"Energy+.idd

Begin EnergyPlus processing . . .

EnergyPlus Starting

EnergyPlus-Windows-64 8.1.0.008, YMD=2019.01.21 23:50

Missing C:\EnergyPlusV8-1-0\Energy+.idd

**FATAL:ProcessInput: Energy+.idd missing. Program terminates. Fullname=C:\EnergyPlusV8-1-0\Energy+.idd

No EnergyPlus Data Dictionary (Energy+.idd) was found...

As you can see, it seems to look for Missing C:\EnergyPlusV8-1-0\Energy+.idd, which would not exist in this context... Has anyone run into this before?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2019-01-29 12:21:18 -0600

__grant_payne__'s avatar

I found out how to do this and it depends on which version of EnergyPlus you're using.

Like @David Goldwasser said, if you're using the EnergyPlus CLI in more recent versions, CLI will look for the IDD in the current working directory. You can place the .idd file in blob storage for the Job you're making. In this case each Task of the Job already has access to whatever is placed in blob storage via its working directory. In other words, what you place in the Blob of the Job will automatically be in each tasks working directory, so you only need to upload the IDD once. And, you don't need to specify the path to the IDD. This Task command would work fine:

"cmd /c "%AZ_BATCH_APP_PACKAGE_EnergyPlus#9.0.1%\\EnergyPlusV9-0-1\\energyplus -w in.epw -r 5ZoneAirCooled.idf"

In E+ versions that don't have the CLI, like 8.1.0, the one we're using, it's trickier. The .ini file in the EnergyPlus application folder MUST contain an Azure Applications path to the IDD that is supposed to be used. Ours was set to "C:\EnergyPlusV8-1-0\". Obviously in the Azure environment it's not possible to get to that drive and EnergyPlus isn't there anyway.

You need to alter the .ini file FIRST, and THEN upload the application package to Azure. INI contents look like:

[program]
dir=.
[BasementGHT]
dir=PreProcess\GrndTempCalc
[SlabGHT]
dir=PreProcess\GrndTempCalc

The key thing is the "dir=." part. This makes E+ look for the IDD in the current working directory. This will make it behave like the EnergyPlus CLI.

After that, you can invoke energy plus with the RunEPlus.bat script, after changing the program_path variable.

set program_path="%AZ_BATCH_APP_PACKAGE_EnergyPlus#8.1.0%\EnergyPlusV8-1-0\"

Alter the simulation_name variable and anything else as necessary as well.

edit flag offensive delete link more
3

answered 2019-01-22 11:17:05 -0600

updated 2019-01-22 11:32:05 -0600

@__grant_payne__ if you are starting the simulation with the EnergyPlus CLI, you can pass in a custom idd path using the flag below.

 -i, --idd ARG                Input data dictionary path (default: Energy+.idd in executable directory)

You may also be able to copy the idd into the same directory as the IDF fie you are running, but try --idd path first.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops

Careers

Question Tools

2 followers

Stats

Asked: 2019-01-21 18:22:09 -0600

Seen: 398 times

Last updated: Jan 29 '19