Page 1 of 1
Hyperthreading...
Posted: Fri Dec 04, 2009 10:16 pm
by image2x
So is there a general consensus on whether hyperthreading is good or bad for TM1?
Seems like you may gain some concurrency advantages on read-only queries with HT but slow overall performance with rule based data and TI processes.
The servers in question here are dual quad-core X5570's with 128GB ram.
Thx. -- John
Re: Hyperthreading...
Posted: Mon Dec 07, 2009 3:17 pm
by mattgoff
There's no "bad" -- there's just less good than you might expect. Depending on the stability of your server version and model architecture, multithreaded startup can be a lifesaver. Good cube design can minimize the impact of writers, too.
Matt
Re: Hyperthreading...
Posted: Mon Dec 07, 2009 4:25 pm
by jim wood
A coule of points:
1) Multi-thread start-up does use a lot more memory.
2) The way that TM1 hyper-threads queries is one thread per user query. (This may be changing in later version but in the version I use this still is the case)
Re: Hyperthreading...
Posted: Mon Dec 07, 2009 6:03 pm
by David Usherwood
And all versions of TM1 that I have worked with push calculations through a single thread. Makes me quite sceptical about the vaunted enhancements in 9.1/9.4, which only relate to locking of input and require the poor developer to fragment his capture cubes into microcubes. Shame the 'last known good' version of TM1 - 9.0 SP3 U9 - is coming off 'active' support in 3 weeks' time.
Re: Hyperthreading...
Posted: Mon Dec 07, 2009 6:28 pm
by image2x
Actually, I'm talking hardware hyperthreading here and not TM1 multithreading...
The X5570's are quad-core processsors but, with hyperthreading enabled in the bios, they appear as 8-core processors in the task manager.
Re: Hyperthreading...
Posted: Tue Dec 08, 2009 9:17 am
by jim wood
Ah now I get your point. Our development server is 4-cpu box with all being dual core so we end up with 8 virtual cores. TM1 just uses one of the threads but when multiple queries are running it does use all 8 threads,
Jim.
Re: Hyperthreading...
Posted: Tue Dec 08, 2009 8:08 pm
by image2x
jim wood wrote:Ah now I get your point. Our development server is 4-cpu box with all being dual core so we end up with 8 virtual cores. TM1 just uses one of the threads but when multiple queries are running it does use all 8 threads,
Jim.
So it begs the question, if your multiple quieres didn't exceed 3 concurrently (leaving one cpu for the box), would they finish faster without hyperthreading than with 3 on a 8 threaded machine? Likewise, would your TI processes and other system chores be faster without the hyperthreading?
If I ever get my head above water with this project, I'll try to do some benchmarking between two identically configured servers but disable hyperthreading on one.
Re: Hyperthreading...
Posted: Wed Dec 09, 2009 12:54 pm
by jim wood
With it being our development box we haven't tried benchmarking. I can tell you this however our 4 hyperthreading processors run a lot faster than our 8 unix processors,
Jim.
Re: Hyperthreading...
Posted: Sun Dec 13, 2009 9:14 pm
by image2x
Okay, did some testing today, and here are the disappointing results (depending on how you look at them):
TM1 instance startup time with 16 virtual threads: 36 minutes (7% static CPU utilization)
TM1 instance startup time with 8 cores (HT disabled): 36 minutes (13% static CPU utilization)
So not a damn bit of difference. It's disappointing to me as I was hoping to cut our start-up time (as well as security refresh times). I guess the good news is that HT doesn't appear to hurt you and most TM1 activity appears to get delegated to all threads (simultaneous blips across all 16 threads on websheet activity for instance).
I should mention this instance is configured with MaximumCubeLoadThreads=0.
-- John
Re: Hyperthreading...
Posted: Sun Dec 13, 2009 10:24 pm
by lotsaram
John, I'm baffled as to why you would expect any other result.
The hardware hyperthreading just turns your 8 CPU box into a 16 CPU box. To use any more than one of these CPUs during server load you would need to set MaximumCubeLoadThreads to a value greater than 1. Your observations are not disappointing, they are exactly what one would expect.
Re: Hyperthreading...
Posted: Mon Dec 14, 2009 12:34 am
by image2x
lotsaram wrote:John, I'm baffled as to why you would expect any other result.
Umm, would have thought that was pretty apparent... I wasn't up to speed (so to speak) on hyperthreading which is why I asked the question in the first place.
So, going back to my original question, in your experience, is there any reason to disable to HT's in TM1 implementations?
Re: Hyperthreading...
Posted: Mon Jan 11, 2010 4:03 pm
by brandon.barker
Funny thing is, I have noticed to utilize no more than 4 threads at a time. Anything above that and tm1 can't handle the memory usage that goes along with starting up that many threads. Try setting it to 4 in the config file and see what that brings. I am curious to see if you guys see the same thing.
Re: Hyperthreading...
Posted: Tue Jun 08, 2010 2:30 am
by Marc
Hi
I just read this thread because I am also wondering if TM1 9.4 FP3 would show increased write-back performance if I disabled hyperthreading on our quad core TM1 server. Cube-load and read performance is not the problem in our model, our bottleneck is write-back of values from excel and TI processes. We are collecting offline data in Excel Workbooks and load them in one go into TM1 (using DBS) per Country/Client combination, after loading from Excel we then run TI processes to generate further values based on the budgets we just captures (like allocations). Bottleneck in this scenario is write-back performance for the DBS from Excel while other users run TI processes. Would switching-off Hyperthreading improve write-back performance?
With regards to Cube Load, I was told (but never tested it) that TM1 (9.4?) is able to utilize Hyperthreading for cube loading if you do not use conditional feeders.
cheers
Marc
Re: Hyperthreading...
Posted: Tue Jun 08, 2010 5:10 am
by Michel Zijlema
With regards to Cube Load, I was told (but never tested it) that TM1 (9.4?) is able to utilize Hyperthreading for cube loading if you do not use conditional feeders.
There often is some misunderstanding about this. The tm1s.cfg multithread setting relates to
database loading on server startup and not to cube-loading using TI or DBSend. A single loading process is single-threaded. TM1 only uses more cores when multiple users are inputting or requesting data simultaneously and/or when multiple TI-processes run simultaneously (if locking permits).
Michel