First time here? Check our help page!
2

Running EnergyPlus in Azure Batch

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?

__grant_payne__'s avatar
71
__grant_payne__
asked 2019-01-21 18:22:09 -0500
__AmirRoth__'s avatar
4.4k
__AmirRoth__
updated 2019-01-22 14:18:32 -0500
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

2 Answers

3

@__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.

David Goldwasser's avatar
20.4k
David Goldwasser
answered 2019-01-22 11:17:05 -0500, updated 2019-01-22 11:32:05 -0500
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments
2

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.

__grant_payne__'s avatar
71
__grant_payne__
answered 2019-01-29 12:21:18 -0500
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments