Do you want your TM1 go twice faster on Intel-box? Turn HyperThreading off

This’ll be a bit long (but with a hidden bonus for attentive reader), so I’ll start from conclusions. If you’re using a recent server with Intel CPUs, you’d better check whether they have Hyper-Threading (HT) and try turning it off to gain 2x speed boost.

How to do it:

1) go to server, open command line, type systeminfo (processor info will be in first ten lines). Or if you don’t like it cool, open Control Panel, CPUs are described on second pane )

2) check whether your CPU’s are in this list

3) ask you server admin, or manually reboot server, look into BIOS and turn HyperThreading off

4) Test your TM1 processes, they may speed up considerably

 

What’s behind the scenes.

Hyper-threading, in a nutshell, is a technique showing each physical CPU core as 2 logical ones. Since during normal work a lot of time is spent in thread switching and related registry load/unload and yada yada, physical cores actually are underloaded in common multithreaded system. Adding a duplicate registry set and a ‘virtual’ core allows to utilise physical core up to 20-40% more, earning throughput benefits.

Key words here are “threading” and “throughput”, meaning that HT benefit multithreaded applications where lots of small request are processed at the same time. OLTP databases are a prominent example.

But most of the systems I work with, almost all OLAP engines and even DWH-tuned DBMSes, actually suffer in this scenario.

For example, TM1 calculations are executed in a single thread, so if this thread is assigned half an CPU core, speed drops significantly. The same logic goes for Essbase metadata update process, for example, or for Cognos Enterprise Planning Job processing.

I’ve seen significant performance degradation (30%) in Cognos EP job processing due to HT context switching and have advised turning HT off on all Cognos EP Job servers.

Encountering the same issue with TM1 recently left me puzzled, since there was plenty of empty CPUs on server and there shouldn’t be any thread switching. But we’ve got 2+ time speedup after flickering the switch anyhow )

 

I promised a bonus and here it goes:

When buying a TM1 server with Intel CPUs, buy way more cores than you’ll license. Physical cores, not logical.

This will turn on Intel Turbo-Boost and it might give you another 30-40% speed boost. I haven’t tried that yet and there’s a bit of scepticism of current boost-detection approach in Wikipedia, but it’s definitely worth testing in a lab before you buy hardware. Cores are cheap compared to licence costs, so you may save yourself a ton of money by having a faster system. As in wikipedia example, for Core i7-2920XM you can boost up to 3,5 Ghz per core with 2,5 Ghz base speed. That’s a hefty speed up for a good old one-threaded TM1.

  • Pingback: Applied Dimensionality – Hyperthreading? » TM1 Tutorials.com

  • Mike Cowie

    Great article!  I look forward to testing some of these observations out.

    However, one thing I question is this advice:

    “When buying a TM1 server with Intel CPUs, buy way more cores than you’ll license. Physical cores, not logical.”

    Maybe I’m misunderstanding your point, but wouldn’t this be in direct violation of the IBM license agreement?  You seem to be indicating that you could buy 16 cores and only license 4 cores – I can’t see how that would ever be legal/accepted by IBM.  I don’t see “we only ever use 4 of the 16 cores” being a valid argument under the current PVU license structure.  But, again, maybe I’m misunderstanding something about Turbo Boost or your point above…

  • Anonymous

    Hi, Mike.

    Send your test results, I’m really interested (got a few already, craving for more).

    About PVUs: I was thinking more in terms of a situation when you have a virtual machine for TM1 and you just have more cores on the host with only a couple shipped to TM1 VM, therefore you’ll have a distinct chance of boost. But thinking again, am I arrogant enough trying to outsmart IBM sales when it comes to licence cost or inventing perpetum mobile?
    I think I’ll ask my IBM contacts and go through license docs myself and then will return with an answer of whereas this is possible. I’ve read something specific about IBM Power TurboCore, but can’t remember anything on Intel chips.

    Anyhow, the same holds for user-based licensing — buy more cores, get Turbo Boost ;)