I want to make this a short post, but there is one big point I think should be put forward. FIXPARALLEL is awesome, and we should all use it more often.
When you open the Tech Ref, there is a lot of information there about this command, and it can be a bit overwhelming, especially when you start to look at POSTFIXPARALLEL, but remember, that is an optional component of the command, all you really need to know is:
FIXPARALLEL (Number of threads to use, Member List)
STUFF YOU WANT TO DO GOES HERE
ENDFIXPARALLEL
As long as your member list is all one dim, you are good to go, this works just like a FIX, but it allows those members to run parallel (think entities). The dimension you chose here can make a big difference, and i plan to write a bit more in depth post about this soon, but i want to make sure people know what is out there.
So lets take a quick example of how i have used this to see Calc times cut down to 1/4 of the original run time.
In this example lets say i have 400 entities to calculate.
Original Calc:
FIX (@RELATIVE(Entity,0),&CurrYr,&CurrMth,Other Sparse Dims)
some complicated math here, lots of if statements, and such
END FIX
New Calc
FIXPARALLEL(4,@RELATIVE(Entity,0)
FIX (&CurrYr,&CurrMth,Other Sparse Dims)
some complicated math here, lots of if statements, and such
END FIX
ENDFIXPARALLEL
That's it. that is all that you Need to make this work.
Go on and test this with your environments and calcs, and let me know how this works.
When you open the Tech Ref, there is a lot of information there about this command, and it can be a bit overwhelming, especially when you start to look at POSTFIXPARALLEL, but remember, that is an optional component of the command, all you really need to know is:
FIXPARALLEL (Number of threads to use, Member List)
STUFF YOU WANT TO DO GOES HERE
ENDFIXPARALLEL
As long as your member list is all one dim, you are good to go, this works just like a FIX, but it allows those members to run parallel (think entities). The dimension you chose here can make a big difference, and i plan to write a bit more in depth post about this soon, but i want to make sure people know what is out there.
So lets take a quick example of how i have used this to see Calc times cut down to 1/4 of the original run time.
In this example lets say i have 400 entities to calculate.
Original Calc:
FIX (@RELATIVE(Entity,0),&CurrYr,&CurrMth,Other Sparse Dims)
some complicated math here, lots of if statements, and such
END FIX
New Calc
FIXPARALLEL(4,@RELATIVE(Entity,0)
FIX (&CurrYr,&CurrMth,Other Sparse Dims)
some complicated math here, lots of if statements, and such
END FIX
ENDFIXPARALLEL
That's it. that is all that you Need to make this work.
Go on and test this with your environments and calcs, and let me know how this works.
Sorry what I typed here - But I can't find any e-mail contacts
ReplyDeleteI sow your K17 presentation about VBA and see one more linked proff )) Please check this tool https://github.com/er77/EssBase.ACT - I hope you find out some more ideas )) I wish you will join to this project with some great's ideas ))
Can I put a fix parallel in a fix pararllel?
ReplyDelete