CALCPARALLEL / CÁLCULO PARALELO

English (Español a continuación)

Essbase can run calculations in two ways:

  • Serial calculation: it is the one applied by default: the calculation is executed sequentially following the order of the calculation script.
  • Parallel calculation: Essbase divides each calculation operation into subtasks that it executes simultaneously, being able to execute in parallel up to 64 operations (on 32-bit platforms) or 128 operations (on 64-bit platforms).

As a general rule, parallel calculation is more efficient than sequential calculation.

  • The parallel calculation is only executed if the “Uncommitted Access” procedure is activated.

Parallel calculation can be activated:

  • In the configuration file «essbase.cfg», indicating the application / database to which it is applied, indicating the number of parallel lines to be used.
  • In the calculation script using the SET CALCPARALLEL command, also indicating the number of parallel lines. For example: SET CALCPARALLEL 4;
  • The value assigned in the SET CALCPARALLEL command prevails over the value assigned in the configuration file.

The number of parallel lines that Oracle recommends are:

  • 32-bit server (8 cores): 8 lines
  • 64-bit server (16 cores): 8 lines
  • 64-bit server (32 cores): 8 lines

In any case, it is recommended to assign a number of lines at least one below the number of available processors, leaving a free processor for the operating system or for other processes that Essbase performs.

To determine the subtasks into which a calculation process is divided, Essbase dynamically selects the sparse dimensions that maximize the efficiency of the calculation (starting with the last in the Outline and in ascending order).

  • The potential number of tasks is calculated by multiplying the number of members of the sparse dimensions selected for the task calculation.
  • For this reason, it is important to place the dispersed dimension with the largest number of members as the last dimension of the Outline, in order to increase the number of potential sub-tasks.

You can also force Essbase to use a certain number of sparse dimensions (starting with the last one in the Outline) using the SET CALCTASKDIMS command:

  • SET CALCTASKDIMS «n»; (Where «n» is an integer that indicates the number of sparse dimensions that must be used to identify the sub-tasks that can be carried out in parallel).
  • This command should only be used if the dynamic selection carried out by Essbase generates many empty tasks (information that is recorded in the log), reducing the efficiency of the parallel calculation.
  • With this command you can force Essbase to increase the number of sparse dimensions, substantially increasing the potential number of sub-tasks and reducing their size.
  • The parameter assigned to this command must be tested: it may happen that an excessive increase in the potential number of sub-tasks negatively affects the level of efficiency.

Although parallel calculation is enabled, it may happen that in some phases of the calc it cannot be applied, switching Essbase to serial calculation (this is reflected in the log).

  • In complex formulas, for example in formulas with circular references (A depends on B; B depends on C; C depends on A).

Español

Essbase puede ejecutar los cálculos de dos formas:

  • Cálculo secuencial: es el que aplica por defecto: el cálculo se ejecuta secuencialmente siguiendo el orden del script de cálculo.
  • Cálculo paralelo: Essbase divide cada operación del cálculo en subtareas que ejecuta independientemente de forma simultánea, pudiendo ejecutar en paralelo hasta 64 operaciones (en plataformas 32 bits) o 128 operaciones (en plataformas 64 bits).

Por regla general, el cálculo paralelo es más eficiente que el cálculo secuencial.

  • El cálculo paralelo sólo se ejecuta si se tiene activado el procedimiento “Uncommitted Access”.

El cálculo paralelo se puede activar:

  • En el fichero de configuración “essbase.cfg”, indicando la aplicación / base de datos a la que se aplica, indicando el número de líneas paralelas que se van a utilizar.
  • En el script de cálculo mediante el comando SET CALCPARALLEL, indicando también el número de líneas paralelas. Por ejemplo: SET CALCPARALLEL 4;
  • El valor asignado en el comando SET CALCPARALLEL prevalece sobre el valor asignado en el fichero de configuración.

El número de líneas paralelas que recomienda Oracle son:

  • Servidor 32-bits (8 cores): 8 líneas
  • Servidor 64-bits (16 cores): 8 líneas
  • Servidor 64-bits (32 cores): 8 líneas

En todo caso se recomienda asignar un número de líneas al menos una por debajo del número de procesadores disponibles, dejando un procesador libre para el sistema operativo o para otros procesos que realiza Essbase.

Para determinar las subtareas en las que se divide un proceso del cálculo Essbase selecciona dinámicamente las dimensiones dispersas que maximizan la eficiencia del cálculo (empezando por la última del Outline y en orden ascendente).

  • El número potencial de tareas se calcula multiplicando el número de miembros de las dimensiones dispersas seleccionadas para el cálculo de tareas.
  • Por ello es importante situar como última dimensión del Outline la dimensión dispersa con mayor número de miembros, para incrementar el número de sub-tareas potenciales.

También se puede forzar a Essbase a utilizar un determinado número de dimensiones dispersas (empezando por la última del Outline) mediante el comando SET CALCTASKDIMS:

  • SET CALCTASKDIMS “n”; (Siendo “n” un número entero que indica el número de dimensiones dispersas que debe utilizar para identificar las sub-tareas que puede realizar en paralelo).
  • Se debe utilizar este comando únicamente si en la selección dinámica que realiza Essbase se generan muchas tareas vacías (información que queda recogida en el log), reduciendo la eficiencia del cálculo paralelo.
  • Con este comando se puede forzar a Essbase a que aumente el número de dimensiones dispersas, incrementando sustancialmente el número potencial de sub-tareas y reduciendo su tamaño.
  • El parámetro asignado a este comando hay que testarlo con pruebas: puede ocurrir que un incremento excesivo en el número potencial de sub-tareas afecte negativamente al nivel de eficiencia.

Aunque el cálculo paralelo esté habilitado puede ocurrir que en algunas fases del mismo Essbase no lo pueda aplicar pasando al cálculo secuencial (esto queda reflejado en el log).

  • En fórmulas complejas, por ejemplo en fórmulas con referencias circulares (A depende de B; B depende de C; C depende de A).