For higher performance results, it is recommended to tune the BIOS of each server for performance.
In general, we wish to tune the BIOS for high performance. In most cases, BIOS performance tuning will be executed once.
Note: Maximum performance configuration does not suit all applications as it consumes much power. However, in case of benchmark testing and performance sensitive clusters, performance configuration is recommended.
Each vendor implements the BIOS in a slightly different way. The following is a list of parameters for BIOS performance tuning.
Before you start, it is recommended to go over the BIOS guide provided by the server manufacturer, upgrade the BIOS if needed, and configure it according to your needs.
1. Power - Configure power to run at maximum power for maximum performance.
2. P-State - if enabled, the CPU (all cores on specific NUMA) will go to "sleep" mode in case there is no activity. This mode is similar to C-State but for the whole NUMA node. In most cases, it saves power in idle times. However, for performance oriented systems, when power consumption is not an issue, it is recommended that P-State is disabled.
3. C-State - For energy saving, It is possible to lower the CPU power when it is idle. Each CPU has several power modes called “C-states” or “C-modes.” This operation is not suitable while BIOS performance configuration, therefore, it should be disabled. For more information about C-State, please refer to Everything You Need to Know About the CPU C-States.
4. Turbo Mode - (Intel) Turbo Boost Technology automatically runs the processor core faster than the noted frequency. The processor must be working in the power, temperature, and specification limits of the thermal design power (TDP). Both single and multi-threaded application performance is increased. For more info, see Intel® Turbo Boost Technology Frequently Asked Questions
5. Hyper Threading - Allows a CPU to work on multiple streams of data simultaneously, improving performance and efficiency. In some cases, turning HyperThreading off results in higher performance with single-threaded tasks. For regular systems, in most cases, it should be turned on. In cases where the CPU is close to 100% utilization, hyper-threading might not help and even harm performance. Therefore, in such cases, Hyper Threading should be disabled.
6. IO Non Posted Prefetching - This parameter is relevant to haswell/broadwell and onwards, and should be disabled on those systems. Note, it is not exposed on all BIOS versions.
7. CPU Frequency - maximum speed for maximum performance.
8. Memory Speed - maximum speed for maximum performance.
9. Memory channel mode - Use the independent mode for performance. By using this mode, it is therefore possible that each memory channel has its own memory controller which operates the memory channel at full speed.
10. Node Interleaving - When node interleaving is disabled, NUMA mode is enabled. Conversely, enabling Node Interleaving means that memory is interleaved between memory nodes, and there is no NUMA presentation to the
operating system. For performance reasons, we wish to disable interleaving (and enable NUMA), thus ensuring that memory is always allocated to the local NUMA node for any given logical processor.
11. Channel Interleaving - Channel interleaving splits the RAM into sections to enable multiple r/w at the same time.
12. Thermal Mode - Functions properly in Performance mode (which also may mean high power, higher fan speed, etc.).
13. HPC Optimizations - This mode is similar to C-state mode as they are supported in AMD processors only.
Here is an example BIOS Performance Tuning Example.