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

Revision history [back]

What is interesting is that you saw linear scaling on the Azure cloud instance but not with the AMD (I assume Ryzen 7 1700 based off specs). The fact that you got linear scaling when running concurrent simulations on the cloud shows that EnergyPlus can run concurrently with minimal performance impact. Which is consistent with many other people's and my experience when running numerous concurrent simulations.

One thing with many modern CPUs is that they scale their frequency based on number of cores in use (Ryzen 7 1700 has 3.7 GHz max turbo speed vs 3.0 GHz base). Thus if you are doing a single (or a few) simulation(s), these will run faster than running simulations on all available cores.

Next, Ryzen is one of AMD's newest processors. Depending on whether you are running on Linux or Windows, the compiler we use to build the releases may not take advantage of AMD's latest technology and hardware. The architecture of AMD's new processors are quite different and the code might not be optimized for it. One thing I would suggest is compiling EnergyPlus on that computer with the newest version of Visual Studio or GCC (depending on operating system) and run your tests again. It may not solve your problem but it at least eliminates a variable.

In searching google, there seems to be potential Windows thread scheduler issues, BIOS bugs, Linux bugs, and NUMA-like architecture that causes scheduling and caching issues. All these can affect the performance.

My general guess is there are hardware oddities and software bugs that are causing thread and cache scheduling issues, especially given that Intel processors work as expected with concurrent EnergyPlus runs. So make sure all chipset drivers, BIOS, operating system, compilers, etc are up to date.

What is interesting is that you saw linear scaling on the Azure cloud instance (which likely use Intel processors) but not with the AMD (I assume Ryzen 7 1700 based off specs). The fact that you got linear scaling when running concurrent simulations on the cloud shows that EnergyPlus can run concurrently with minimal performance impact. Which is consistent with many other people's and my experience when running numerous concurrent simulations.

One thing with many modern CPUs is that they scale their frequency based on number of cores in use (Ryzen 7 1700 has 3.7 GHz max turbo speed vs 3.0 GHz base). Thus if you are doing a single (or a few) simulation(s), these will run faster than running simulations on all available cores.

Next, Ryzen is one of AMD's newest processors. Depending on whether you are running on Linux or Windows, the compiler we use to build the releases may not take advantage of AMD's latest technology and hardware. The architecture of AMD's new processors are quite different and the code might not be optimized for it. One thing I would suggest is compiling EnergyPlus on that computer with the newest version of Visual Studio or GCC (depending on operating system) and run your tests again. It may not solve your problem but it at least eliminates a variable.

In searching google, there seems to be potential Windows thread scheduler issues, BIOS bugs, Linux bugs, and NUMA-like architecture that causes scheduling and caching issues. All these can affect the performance.

My general guess is there are hardware oddities and software bugs that are causing thread and cache scheduling issues, especially given that Intel processors work as expected with concurrent EnergyPlus runs. So make sure all chipset drivers, BIOS, operating system, compilers, etc are up to date.