Minimum and Recommended Machine Specifications
To effectively use SAInt, particularly for optimization models dealing with production cost and capacity expansion modeling, it’s crucial to have the appropriate hardware setup. Below, we detail both the required and recommended system specifications to ensure that you are equipped to solve complex and large-scale problems efficiently.
SAInt is a 64-bit application that runs exclusively on Microsoft Windows, from Windows 11 Home / Pro / Enterprise to Windows Server 2019 or later. As a Windows-only application, SAInt does not run on macOS or Linux.
Minimum System Requirements
The following are the minimum hardware requirements we recommend to address "small-scale networks and problems" in SAInt.
- Processor
-
at least a 4-core CPU with hyper-threading or simultaneous multithreading technology and a minimum clock speed of 2.0 GHz.
- Memory
-
A minimum of 16 GB.
- Storage
-
A solid-state drive (SSD) with at least 256 GB of free space. Prefer NVMe PCIe SSDs over SATA SSDs.
Recommended System Specifications
For optimal performance, especially when dealing with "large and complex instances of optimization models", we recommend the following specifications:
- Processor
-
At least a 16-core CPU with hyper-threading or simultaneous multithreading (HT/SMT). Optimally, a 24-core CPU (with HT/SMT) is recommended. The CPU should be able to sustain a high clock frequency under long-haul workloads (i.e., hours of continuous, high utilization) with appropriate cooling and power limits. For server-grade hardware, prioritize sustained performance over peak boost: aim for a platform/CPU combination that can maintain ~3.4 - 3.8 GHz sustained all-core under the expected workload, and validate with workload-relevant benchmarks where possible. For consumer-grade hardware, prefer CPUs that can sustain ~4.0 - 4.6 GHz all-core under long-haul loads (rather than relying on short-duration peak boost figures).
- Memory
-
Size RAM according to the simulation type and the level of parallelism. For Capacity Expansion Models (CEM), memory demand is high—recommend at least 128 GB, and 256 GB or more for larger instances or longer horizons. For Production Cost Models (PCM), 64 GB is typically sufficient for a single SAInt solve, while parallel / concurrent SAInt runs should provision proportionally more RAM (plan capacity per concurrent process to avoid paging and memory pressure). For mission-critical tasks, prefer ECC memory for improved data integrity. Where supported by the platform, prefer more DIMMs across channels (e.g., 4 x 32 GB rather than 2 x 64 GB) to increase available memory bandwidth via better channel population, provided the configuration maintains the desired speed and stability.
- Storage
-
An NVMe PCIe solid-state drive (SSD) with at least 1 TB of free space. SSD with higher read/write speeds could improve the I/O performance.
Key Considerations
-
Graphic Card:
SAInt computation capabilities are designed to take full advantage of modern CPUs. SAInt performance is independent of the availability of a graphic card (GPU) for both simulation and optimization problems. For SAInt’s typical optimization workloads (LP/MIP using Gurobi), GPUs do not accelerate solves; performance primarily depends on the CPU and memory. Furthermore, SAInt currently runs Gurobi without enabling the "Primal-Dual Hybrid Gradient" algorithm on GPU (PDHG-on-GPU), as this is still considered a beta feature for NVIDIA GPUs in release 13.0 of Gurobi.
-
Number of Cores and Clock Speed:
More cores can improve performance, especially for models requiring extensive parallel processing. For problems that solve faster with linear programming (LP) or mixed-integer programming (MIP) near the root node, higher clock speeds are preferable.
We have observed that on machines with more than 32 cores, there is a little-to-no benefit for a single SAInt solve, where clock frequency and RAM play a more important role. On the other hand, if the machine is used for multiple concurrent runs of SAInt, a higher number of cores could help.
In optimization problems, Gurobi has a soft limit of ~32 threads, since higher thread counts often don’t improve performance. This is the default automatic option by Gurobi (i.e.,
Threads=0). On machines with >32 logical processors, under default settings, Gurobi may use only the number of physical cores unless Threads is explicitly set higher (e.g., 24 physical cores with 2 threads/core then setThreads=48to use all logical threads). -
Memory (RAM):
More RAM is beneficial for handling large and complex models. Moving from 16 GB to 32 GB of RAM can yield major speedups if 16 GB causes paging/memory pressure. RAM should be provisioned in proportion to the model size and complexity. For many typical single-run cases, performance improvements taper off once ~32 GB is sufficient to avoid memory pressure/paging; beyond that point, additional RAM usually yields limited speedup unless the instance is large enough to materially increase working-set memory needs. When multiple SAInt runs are active on one machine, the provision of more RAM is very beneficial since each process will consume substantial memory. Splitting the RAM into more memory cards to leverage more memory channels, could help enhance performance.
If possible, prefer ECC (Error Correcting Code) RAM over non-ECC RAM. ECC RAM’s main benefit over "normal" (non-ECC) RAM is data integrity: it can detect and often correct bit flips that would otherwise silently corrupt data or crash a program.
-
Processing Trade-offs:
A machine with more cores and a slightly slower clock speed may outperform a machine with fewer cores but a faster clock speed (or vice-versa), depending on the nature of the optimization tasks. Benchmarking specific models is crucial to determine the ideal configuration.
-
Parallel Execution:
If planning to run multiple instances in parallel, ensure sufficient cores and memory to support concurrent processing without resource contention. Limit the number of threads per process if necessary to balance the computational load.
-
Capacity Expansion Models (CEM):
CEM is RAM-intensive, and it is recommended to have at least 128 GB of RAM. We strongly recommend reducing the time horizon and / or the problem size to fit within hardware constraints, where possible.
-
System cooling:
It is recommended to equip the workstation or server used for simulation and optimization problems with an adequate and efficient cooling system, especially if the machine needs to operate for long periods. Lower operating temperatures help in maintaining higher sustained all-clock frequencies and avoid thermal throttling.
In conclusion, selecting the right hardware configuration for SAInt depends on the specific nature and complexity of the models you intend to solve. For the best results, consider conducting benchmarks with representative model instances to tailor your system configuration to your needs. If you need further assistance in determining the optimal setup, please reach out to us at support@encoord.com. We are here to help!