With careful consideration and planning, Aurora can be easily integrated into any IT-environment and can provide you with an excellent experience. This document summarizes some of the hardware, software, and other IT infrastructure related recommendations and considerations for running Aurora. If further clarification is needed in any area, please contact Support customer support.
Considerations and Recommendations for Scaling Aurora
For the absolute fastest performance, we recommend multiple over-clocked workstations running in parallel. While this may be a more expensive option, it provides the fastest performance with no OS-overhead for managing multiple instances.
For running multiple instances of Aurora in parallel, we recommend the maximum number of instances be the lesser value of:
One instance per available core, keeping at least one core available for managing the OS overhead, i.e., #cores – 1, and
Total memory in GB divided by two, i.e., QtyGB/2.
For example, a machine that has 8 cores, but only 4GB of RAM should have maximum instances set no higher than 2. On the other hand, a machine with 8 cores, but 32GB of RAM could have a maximum of 7 instances. Optimal limits will depend on individual customer hardware environment, Aurora project settings, etc.
The amount of requested output can greatly vary the size of output databases. If a lot of output is requested (e.g. hourly results), we recommend writing to separate output databases (e.g., SQL Server) so as not to overwhelm the output database. Otherwise, multiple output streams can be sent to a single SQL Server output database.
We recommend 64-bit servers/workstations (CPU and OS) with a lot of physical memory (2-8 GB per core depending on study types). See Computer Requirements for more complete hardware recommendations.
To minimize conflicting competition for memory and CPU-horsepower, we recommend installing non-Aurora output database management systems (SQL Server or MySQL) on a separate box than those dedicated to running Aurora.
Recommendations for Multi-core/Multi-user Environments
Multiple instances of Aurora can be run in parallel on servers or workstations that have multi-core processors for increased productivity. Furthermore, multi-core processor platforms are ideally suited for multi-user environments. However, there are some important considerations regarding memory requirements and potential performance degradation for Aurora in these types of environments that should be noted.
In multi-core/multi-user environments, the memory requirements of Aurora scale nicely in a linear fashion. There are no memory synergies related to multiple instances. So, for example, if running a system that needs up to 2 GB of RAM, then running 8 instances in parallel on 8 CPU cores would require 8 * 2 GB = 16 GB of RAM.
The exact memory requirements vary based on a number of factors. Some of the factors that can have a significant impact on memory requirements for Aurora in multi-core/multi-user environments are:
Running nodal simulations of very large systems such as East Interconnect.
LT expansion runs with many, new resource alternatives.
Setting the “Max records retained in memory” to a higher number to improve run time when reporting lots of output.
Running scenarios with a more granular topology (e.g. solving hourly prices for many WECC zones vs. fewer).
However, CPU usage will not scale linearly. Each additional instance of Aurora will create significant system CPU overhead related to managing the multiple processes. Additionally, memory and I/O channels are limited in multi-core processor environments and can cause significant bottlenecks that result in degraded performance. The amount of performance degradation depends heavily on the specific hardware of the computer, but is also affected by the number of simultaneous instances, the number of zones in the system to be solved, and other project settings. Energy Exemplar recommends customer testing in their intended multi-core environment to determine how to maximize productivity for Aurora runs.
Aurora Settings to Maximize Performance
Aurora runs should be intelligently designed with performance needs in mind. Here are some examples of things to consider:
System setup – many zones or few zones;
Number of records retrained in memory before writing results to output – more gives better performance but requires more memory, less gives slightly worse performance but uses less memory;
Amount of output requested for reporting – be judicious/selective;
Staggered starts for multiple runs – it may be helpful to slightly stagger run starts if writing to same output database to distribute DB memory- and CPU-consumption more uniformly and minimize bottlenecks.
Other IT Infrastructure Considerations
See Other System Considerations for an additional discussion of important considerations.
Recommendations For Maximizing Performance
For further assistance, please contact Aurora Support.
Copyright© 1997-2024 Energy Exemplar LLC. All rights reserved.