I've often wondered how to judge the relative performance of different techniques in TM1 and how perhaps different techniques may be better for different densities of data. I'm mainly thinking of rules and feeders here.
For example
['x'] = If (Ellisanc ('Dim', ' Big Conso', !Element)=1 , a*b, 0);
can be replaced with
['x'] = If (Attrn('Dim', !Element, 'Is a Member of Big Conso')=1 , a*b, 0);
I've done this on a few occasions and provided the numeric attribute is not itself rule based then you can get a significant performance saving on the calculation. An real world example I have been working on with Martin has produced a saving of 18%.
My question then is how would you benchmark this technique? I'd like to make a statement
"Using benchmark server A with data set "Dense" this produced a saving of 20%, with data set "Semi-Dense" this produced a saving of 15% and with the sparse data set we saved 14% of the calculation time"
or
"Using my hardware and benchmark server A, view X calculated in 10 seconds" This would enable us to compare our hardware (phnarr, phnarr!), which I think is actually very hard, since everything in TM1 is so model dependent.
Sooo getting to the point what should a bench mark server look like?
Would be interested in everyone’s thoughts...
Cheers
TM1 Test Bed
- Steve Rowe
- Site Admin
- Posts: 2455
- Joined: Wed May 14, 2008 4:25 pm
- OLAP Product: TM1
- Version: TM1 v6,v7,v8,v9,v10,v11+PAW
- Excel Version: Nearly all of them
TM1 Test Bed
Technical Director
www.infocat.co.uk
www.infocat.co.uk
- Eric
- MVP
- Posts: 373
- Joined: Wed May 14, 2008 1:21 pm
- OLAP Product: TM1
- Version: 9.4
- Excel Version: 2003
- Location: Chicago, IL USA
Re: TM1 Test Bed
Correct me if I am wrong, but what you save in performance you loose in maintainability because of the manual entry required to put the 1 or 0 into attribute, along with having stay on top of maintenance as rollups change.I've done this on a few occasions and provided the numeric attribute is not itself rule based then you can get a significant performance saving on the calculation. An real world example I have been working on with Martin has produced a saving of 18%.
Regards,
Eric
Blog: http://tm1-tipz.blogspot.com
Articles: http://www.google.com/reader/shared/use ... /label/TM1
Production: 32 bit 9.0 SP2, Windows 2000 Advanced Server. Web: 32 bit 9.0 SP2, Windows 2000 Server. Excel 2003
Eric
Blog: http://tm1-tipz.blogspot.com
Articles: http://www.google.com/reader/shared/use ... /label/TM1
Production: 32 bit 9.0 SP2, Windows 2000 Advanced Server. Web: 32 bit 9.0 SP2, Windows 2000 Server. Excel 2003
- Steve Rowe
- Site Admin
- Posts: 2455
- Joined: Wed May 14, 2008 4:25 pm
- OLAP Product: TM1
- Version: TM1 v6,v7,v8,v9,v10,v11+PAW
- Excel Version: Nearly all of them
Re: TM1 Test Bed
I was going to mention how I get around this but I didn't since it was a bit off the topic I wanted to cover.
I normally write a ruled attribute that calculates the value that I want so in the example
['Ruled Attr']=S:If (Ellisanc ('Dim', ' Big Conso', !Element)=1 ,'1','0');
I then have a numeric mirror attribute that is updated by TI using the ruled string attribute as it's source. The dimensions that I do this are usally maintaned by TI themselves so I just put a call to the attribute TI at the end of it. Alternatively just schedule it at whatever freqency you need just to keep everything in sync.
If you had to maintain the attribute manually then I agree you'd have to think hard about it but you can get some pretty significant savings by refining what your If statments in rules test against.
Anyone have views about a test bed?
Cheers,
I normally write a ruled attribute that calculates the value that I want so in the example
['Ruled Attr']=S:If (Ellisanc ('Dim', ' Big Conso', !Element)=1 ,'1','0');
I then have a numeric mirror attribute that is updated by TI using the ruled string attribute as it's source. The dimensions that I do this are usally maintaned by TI themselves so I just put a call to the attribute TI at the end of it. Alternatively just schedule it at whatever freqency you need just to keep everything in sync.
If you had to maintain the attribute manually then I agree you'd have to think hard about it but you can get some pretty significant savings by refining what your If statments in rules test against.
Anyone have views about a test bed?
Cheers,
Technical Director
www.infocat.co.uk
www.infocat.co.uk