Quantcast
Channel: What if the world is a prototype?
Viewing all articles
Browse latest Browse all 24

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

$
0
0

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 alone.

A small bench mark reference application in Essbase was created with a small about of data. A single rule is used as a reference. Each test, the rule is run four times. The first run is always ignored. The three remaining runs are averaged to a single number. Calculation times are 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 as a reference. The graph below has been 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 before I started was that Essbase would fit the "Latency Sensitive" profile better than 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 mentions UEFI memory optimizations, only one setting made sense to me "Node Interleave" 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-Thread is disabled as part of the Latency Sensitive profile, but enabled as a delta in step 3.

The numbers


Percentage Difference Overview


Conclusions

What you might notice is that disabling or enabled 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" and produces the best performance results. A stunning 24% increase in Essbase calculation speed, including "Node Interleave" setting even 28%! This is a serious CPU upgrade, for free!

Essbase is indeed a "Latency Sensitive" workload. Base don experience, we already knew this related to disk IO. Now we discovered it is also true related to CPU and memory.

After applying these settings on other environments and bench-marking real live applications, I can concur 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.










Viewing all articles
Browse latest Browse all 24

Trending Articles