Skip to main content

Data & Intelligence

Parallel Calculations in Essbase

The Essbase block storage calculation engine is capable of multi-threading calculations and can be configured using a handful of Essbase configuration commands and calculation commands.

If you have multiple processor cores with cycles to spare, turn on parallel calculation by inserting “SET CALCPARALLEL n;” into your calculation script where n is the number of threads to use.  This number can be anywhere from 1 to 128 on 64-bit systems.  Oracle recommends you set this value to one less than the number of CPU cores on your system so that one remains available for writing out dirty blocks or handling operating system commands.  You will have to balance this with other processes and calculations running concurrently on your Essbase server.

Example: SET CALCPARALLEL 8;

Other calculation and configuration commands help manage parallel calculations.  For example, the MAXACTIVEUPDATETRANSACTIONS n in the Essbase.cfg file dictates the total number of transactions that can be concurrently updating data.  If this value is less than your CALCPARALLEL setting then one or more of your update threads from the calculation will be waiting for others to complete.

Example in Essbase.cfg:  :  MAXACTIVEUPDATETRANSACTIONS 12

The “SET CALCTASKDIMS n;” calculation script command specifies the number of dimensions to use for determining the calculation tasks.  By default, Essbase uses the last sparse dimension to determine how it will divide up calculations among multiple threads.  If the last dimension is not a consolidating dimension, you will find that the number of parallel calculations will be low.  By using the CALCTASKDIMS calculation setting, you can increase the number of dimensions to use in this calculation.  For example, my outline, in order, includes the following dimensions:  Accounts (dense), Period (dense), Customer, Product, Entity, Currency, Scenario, Version, and Years.  Many calculations will FIX on a specific year, version, and scenario.  If I ran a calculation like that, it would run in serial because only one year is calculated.  If I increase my CALCTASKDIMS to 4 and run the calculation, I may see a message like “Calculation task schedule [57,1]” in my application log.  This indicates that the parallel calculator will run 57 calculations in parallel followed by one calculation.  If I increase my CALCTASKDIMS to 5, it will include a consolidating sparse dimension and potentially improve utilization of parallel calculations.

Example:  SET CALCTASKDIMS 5;

Need more?  Check out the Oracle Essbase DBA guide and Technical Reference for your version of Essbase.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.