Utilisation de l'exécution parallèle dans les ensembles de règles

Dans certains cas, l'exécution parallèle de règles peut améliorer les performances globales dans Profitability and Cost Management. Les options de calcul sont définies au niveau de l'ensemble de règles. Elles concernent toutes les règles qui en font partie. L'option par défaut pour tous les ensembles de règles est le traitement séquentiel. Cela signifie que chaque règle est exécutée de façon individuelle et que toutes les règles de l'ensemble sont exécutées une par une.

Vérification de l'applicabilité de l'exécution parallèle aux règles

Souvent, les règles ont une incidence sur l'exécution d'autres règles. Si une règle effectue une allocation dans la plage source d'une autre règle, l'ordre d'exécution des règles peut avoir une incidence considérable sur le résultat final. C'est pourquoi l'option de calcul par défaut est le traitement séquentiel.

S'il existe des règles pour lesquelles l'exécution parallèle est sans danger, utiliser l'option de calcul parallèle peut contribuer à l'amélioration des performances. Définissez l'option de traitement parallèle pour les ensembles de règles voulus. Définissez également l'option du nombre maximal de threads simultanés sur l'écran Propriétés de l'application.

Définition du nombre de threads optimal

Pour trouver le nombre de threads simultanés approprié, vous devez procéder à des expérimentations. Il existe un niveau auquel les améliorations de performances cessent et où utiliser des threads supplémentaires pour lancer d'autres règles est contre-productif. Pour le calcul parallèle, il est recommandé de tester les ensembles de règles en commençant avec quatre threads simultanés, puis en augmentant progressivement le nombre de threads jusqu'à ce que les performances ne s'améliorent plus. Si les règles qui ne mélangent pas les plages source sont adaptées au traitement parallèle, leurs plages de destination peuvent néanmoins partager des emplacements communs. Dans ce cas, Oracle Essbase devra suspendre une règle jusqu'à ce que l'autre termine d'écrire les données de destination. C'est pourquoi, à un moment donné, vous constaterez qu'augmenter le nombre de threads n'améliore plus les performances.