div class='cap-left'/>

How to configure CPU options in the UEFI (BIOS) for maximum Essbase calculation speeds

Thursday, September 22, 2016

Introduction

Personally I never paid attention to specific UEFI (Unified Extensible Firmware Interface) settings when installing and configuring EPM. It was always on factory default values. During a project however, I was triggered to have a look at these setting due to an issue I could not explain.

What I discovered, came as a big surprise to me!


Conditions

This article is assuming a Dell PowerEdge, with a v3 Intel CPU architecture. All other areas that might impact performance have been left untouched.

A small bench mark application in Essbase was created containing a small amount of data. A single rule has been used as reference. Each test, the rule was run four times. The first run was always ignored. The three remaining runs where averaged out. Calculation times where taken directly from the Essbase application log, not timed through the Web Interface.

Dell Performance Guide

Dell has written a document named "BIOS Performance and Power Tuning Guidelines for Dell PowerEdge" (can be downloaded here) which has been used for guidance. The graph below was taken from this document. Dell categorizes workloads in three profiles as shown in the picture below. Factory default is "Performance Optimized".



Essbase Classification

My expectation was that Essbase would fit the "Latency Sensitive" profile instead of the default "Performance Optimized" profile. For obvious reasons it would not fit the profile "Power Efficient". I decided to test the performance differences between the profiles "Performance Optimized and Latency Sensitive". In addition I tested all individual changes in order to get a understanding which setting has the highest impact and what combination of settings offers the best Essbase calculation speeds.

Overview of the Results

The table below provides an overview of the test results. All percentages are compared to the baseline which is the factory default "Performance Optimized" profile. Negative percentage means performance loss compared to the baseline. For our US friends, the number 1,50 means "1 second and 5 tenths of a second". The Dell document also addresses UEFI memory optimizations, however only one setting "Node Interleave" made sense to me to include in the test.

Because the benchmark application is small and doesn't contain allot of data, the differences in seconds is small.  However in percentages they are big.

To clarify, settings 3 to 6 are delta's of the "Latency Sensitive" profile. For example: Hyper-threading is disabled as part of the Latency Sensitive profile, but enabled as a delta in step 3.

The numbers


Percentage Difference Overview


Conclusions

Disabling or enabling Hyper-threading makes the biggest impact in performance. The magic however seems to be the combination of settings as specified for the profile "Latency Sensitive", which provided the best performance results. A stunning 24% increase of Essbase calculation speed, including "Node Interleave" setting even 28%! This is a serious CPU upgrade... for free!

Essbase is indeed a "Latency Sensitive" workload. Based on experience, we already knew this in relation to disk IO. Now we discovered it is also true in relation to CPU and memory.

After applying these settings on other environments and bench-marking real live applications, I can confirm that the percentages mentioned in this post are reproducible in real-life situations.

The UEFI Dell Settings

Below the settings changed to match the "Latency Sensitive" profile. These changes are the delta between "Performance Optimized" factory default profile and "Latency Sensitive" profile. The screenshots are taken by accessing the settings through iDrac.











No comments :

Post a Comment