CALCPARALLEL - Parallele Berechnung

Um von der standardmäßigen seriellen Berechnung von Essbase in die parallele Berechnung von CALCPARALLEL zu wechseln, ändern Sie eine oder zwei Konfigurationseinstellungen, und starten den Server neu, oder fügen Sie dem Berechnungsskript eine Anweisung hinzu.

Anweisungen finden Sie unter Parallele Berechnung für CALCPARALLEL aktivieren.

In den nächsten Themen werden die Details der parallelen Berechnung erläutert.

Analyse der Durchführbarkeit von CALPARALLEL

Essbase prüft, ob die Parallelberechnungsmethode CALPARALLEL vor jedem Berechnungsdurchlauf möglich ist, für den Sie sie aktiviert haben.

Essbase analysiert die Gliederung und die für jeden Berechnungsdurchlauf angeforderte Berechnung. Beachten Sie, dass eine Berechnung möglicherweise mehrere Durchläufe erfordert. In einigen Situationen kann es erforderlich sein, mehrere Durchläufe auszuführen, einschließlich dynamischer Berechnung, Vorhandensein eines Elements, das als Two-Pass gekennzeichnet ist, oder Berechnungen, die bestimmte Arten von Interdependenzen erstellen. Siehe Berechnungspässe.

Wenn Essbase feststellt, dass eine parallele Berechnung mit der CALPARALLEL-Methode möglich ist, teilt Essbase die Berechnung in kleinere Aufgaben auf, die unabhängig voneinander sind. Während der Berechnung führt Essbase die kleineren Aufgaben gleichzeitig aus.

Essbase greift jedoch auf die serielle Berechnung zurück, wenn komplexe Abhängigkeiten zwischen Formeln bestehen, die am Durchlauf beteiligt sind. Solche Interdependenzen können eine parallele Berechnung unmöglich machen.

Überlegen Sie, ob die FIXPARALLEL-Methode für Ihren Anwendungsfall besser geeignet ist. Siehe Parallele Berechnung für FIXPARALLEL.

CALCPARALLEL - Richtlinien für parallele Berechnungen

Die Struktur der Essbase-Modellstruktur und das Anwendungsdesign bestimmen, ob die Aktivierung der parallelen Berechnung die Berechnungsperformance verbessern kann. Bevor Sie die parallele Berechnung im CALCPARALLEL-Stil aktivieren, lesen Sie die folgenden Richtlinien, die Ihnen helfen, den vollen Nutzen zu erzielen.

  • Eine oder mehrere Formeln in einer Berechnung können verhindern, dass Essbase die parallele Berechnung von CALCPARALLEL verwendet, selbst wenn sie aktiviert ist. Eine Beschreibung von Formeln, die eine serielle Berechnung unabhängig von parallelen Berechnungseinstellungen erzwingen können, finden Sie unter Beziehung zwischen paralleler Berechnung von CALCPARALLEL und anderen Essbase-Features.

  • Berechnungsaufgaben werden entlang der letzten n Sparse-Dimensionen einer Modellstruktur generiert. Diese dünn besetzten Dimensionen zur Identifizierung von Aufgaben werden als Aufgabendimensionen bezeichnet. Die Anzahl der Aufgabendimensionen, n, wird entweder dynamisch von Essbase ausgewählt, oder Sie können die Zahl überschreiben, indem Sie einen Wert für den Berechnungsbefehl SET CALCTASKDIMS (oder die Anwendungskonfigurationseinstellung CALCTASKDIMS) angeben.

    Sortieren Sie die dünn besetzten Dimensionen in einer Modellstruktur vom kleinsten zum größten Modell, basierend auf der tatsächlichen Größe der Dimension (wie von der MaxL-Anweisung Abfragedatenbank DBS-NAME get dbstats dimension gemeldet). Diese Anforderungsempfehlung ist konsistent mit Empfehlungen zur Optimierung der Rechnercachegröße und konsistent mit anderen Outlineempfehlungen. Eine Beschreibung der Situationen, in denen möglicherweise zusätzliche Dimensionen (mehr als die letzte Sparse-Dimension) verwendet werden müssen, sowie Anweisungen zur Erhöhung der Anzahl der verwendeten Sparse-Dimensionen finden Sie unter Zusätzliche Aufgaben für parallele Berechnung identifizieren.

  • Die parallele Berechnung von CALCPARALLEL gilt für nicht partitionierte Anwendungen und diese partitionierten Anwendungen:

  • Aktualisierungstransaktionen, wie Berechnungen und Datenaktualisierungen, sind ressourcenintensiver als MDX-Abfragen oder Berichtsskripte.

Beziehung zwischen paralleler Berechnung von CALCPARALLEL und anderen Essbase-Features

Wenn Sie die parallele CALCPARALLEL-Berechnung in Ihrem Essbase-Cube verwenden, sollten Sie Einschränkungen in Bezug auf die Abrufperformance, Formeln, Rechnercache-Bitmap und transparente Partitionen berücksichtigen.

Abrufleistung

Das Platzieren der größten dünn besetzten Dimension am Ende des Outlines für maximale parallele Berechnungsperformance kann die Abrufperformance verlangsamen.

Formelbeschränkungen

Das Vorhandensein einiger Formeln kann die serielle Berechnung erzwingen. Die folgenden Formelplatzierungen erzwingen wahrscheinlich die Serienberechnung:

  • Eine Formel für ein dicht besiedeltes Element, einschließlich aller gespeicherten Elemente und aller Elemente der dynamischen Berechnung, von denen ein gespeichertes Element abhängig sein kann, wodurch eine Abhängigkeit von einem Element der Dimension entsteht, mit dem Aufgaben für die parallele Berechnung identifiziert werden.

  • Eine Formel, die Verweise auf Variablen enthält, die in einem Berechnungsskript deklariert sind und @VAR, @ARRAY, @XREF oder @XWRITE verwenden. Verwenden Sie stattdessen FIXPARALLEL für die parallele Berechnung.

  • Eine Formel für dünn besetzte Dimensionselemente mit @XREF, und die Dimension für das dünn besetzte Element wird vollständig berechnet. @XREF erzwingt keine serielle Berechnung, wenn es sich um dicht besetzte dynamische Berechnungselemente handelt, die während der Batchberechnung nicht von anderen gespeicherten Elementen abhängig sind.

  • Eine Elementformel, die eine zirkuläre Abhängigkeit verursacht. Beispiel: Element A hat eine Formel, die sich auf Element B bezieht, und Element B eine Formel, die auf Element C verweist, und Element C eine Formel, die auf Element A verweist.

  • Eine Formel für ein dicht besetztes oder dünn besetztes Element mit einer Abhängigkeit von einem Element oder Elementen aus der Dimension, mit der Aufgaben für die parallele Verarbeitung identifiziert werden.

  • Eine Elementformel für dünn besetzte Dimensionen, die Referenzen auf Elemente aus anderen dünn besetzten Dimensionen enthält.

Wenn Sie eine Formel verwenden müssen, die eine parallele Berechnung verhindern kann, sollten Sie FIXPARALLEL verwenden. Andernfalls können Sie entweder das Element der Formel als dynamische Berechnung markieren oder die Formel aus dem Geltungsbereich der Berechnung ausschließen. Um festzustellen, ob eine Formel eine parallele Berechnung verhindert, prüfen Sie das Anwendungslog. Relevante Fehlermeldungen finden Sie unter Parallele Berechnung von CALCPARALLEL überwachen.

Rechnercache

Zu Beginn eines Berechnungsdurchlaufs prüft Essbase die Rechnercachegröße und den Parallelisierungsgrad und verwendet dann die Bitmapoption für den Rechnercache, die für maximale Performance geeignet ist. Daher kann sich die Bitmap-Option, die für die parallele Berechnung verwendet wird, von der für die serielle Berechnung unterscheiden.

Beispiel: Angenommen, Essbase führt eine serielle Berechnung aus und verwendet mehrere Bitmaps und eine einzelne Verankerungsdimension. Ohne explizite Änderung der Rechnercachegröße kann Essbase eine parallele Berechnung mit nur einer Bitmap und einer einzelnen Verankerungsdimension ausführen.

Sie können den Rechner-Cache-Modus bestimmen, der die Bitmap-Optionen steuert, indem Sie das Anwendungslog am Anfang jedes Berechnungsdurchlaufs für einen Eintrag wie den folgenden prüfen:

Multiple bitmap mode calculator cache memory usage has a limit of [50000] bitmaps.

Wenn Sie die parallele Berechnung im Multi-Bitmap-Modus verwenden, kann es zu einer hohen Speicherauslastung kommen. In diesem Fall können Sie die Konfigurationseinstellung PARCALCMULTIPLEBITMAPMEMOPT verwenden, um die Speicherauslastung im Multi-Bitmap-Modus zu optimieren. Diese Einstellung kann mit oder separat von MULTIPLEBITMAPMEMCHECK verwendet werden. Um PARCALCMULTIPLEBITMAPMEMOPT zu aktivieren, fügen Sie Ihrer Anwendungskonfiguration Folgendes hinzu:

PARCALCMULTIPLEBITMAPMEMOPT TRUE

Transparente Partitionsbeschränkungen

Die parallele Berechnung mit transparenten Partitionen hat folgende Einschränkungen:

  • Sie können keine parallele Berechnung über transparente Partitionen hinweg verwenden, es sei denn, die Berechnung erfolgt auf dem Ziel.

  • Sie müssen die Aufgabendimensionen auf 1 setzen. Verwenden Sie dazu den Berechnungsbefehl SET CALCTASKDIMS oder die Konfigurationseinstellung CALCTASKDIMS.

  • Sie müssen den Rechnercache erhöhen, damit mehrere Bitmaps verwendet werden können. Sie können den Rechnercache-Modus bestimmen, der die Bitmap-Optionen steuert, indem Sie das Anwendungslog am Anfang jedes Berechnungsdurchlaufs für einen Eintrag wie den folgenden prüfen:

    Multiple bitmap mode calculator cache memory usage has a limit of [50000] bitmaps.

Aktuelle CALCPARALLEL-Einstellungen prüfen

Sie können entweder die Anwendungskonfiguration oder das Berechnungsskript prüfen, das Sie verwenden möchten, um festzustellen, ob die parallele Berechnung im CALCPARALLEL-Stil für Ihren Essbase-Cube aktiviert ist.

Um zu prüfen, ob die parallele Berechnung im CALCPARALLEL-Stil auf Anwendungsebene aktiviert wurde, suchen Sie nach dem Konfigurationsparameter CALCPARALLEL, und prüfen Sie den angegebenen Wert.

Alternativ kann der Cube (oder Berechnungsskripte) FIXPARALLEL-Befehlsblöcke zur parallelen Berechnung verwenden.

Bei CALCPARALLEL wird die Anzahl der Threads, die gleichzeitig Aufgaben zum Abschließen einer Berechnung ausführen können, durch einen Wert zwischen 1 und 128 angegeben. Block Storage-(BSO-) und Aggregate Storage-(ASO-)Datenbanken, die auf 64-Bit-Plattformen ausgeführt werden, unterstützen bis zu 128 Threads.

Um zu prüfen, ob ein Berechnungsskript die parallele Berechnung im CALCPARALLEL-Stil festlegt, suchen Sie nach dem Befehl SET CALCPARALLEL. Prüfen Sie das Skript sorgfältig, da das Skript die parallele Berechnung möglicherweise mehrmals aktivieren oder deaktivieren kann.

Parallele Berechnung für CALCPARALLEL aktivieren

Um die parallele Berechnung im CALCPARALLEL-Stil mit Ihrem Essbase-Cube zu verwenden, können Sie sie für die Anwendung aktivieren oder nur für ein oder mehrere Berechnungsskripte implementieren.

Um die parallele CALCPARALLEL-Berechnung mit Ihrem Essbase-Cube zu verwenden, verwenden Sie eine der folgenden Methoden:

Führen Sie diesen Workflow aus, um die parallele Berechnung im CALCPARALLEL-Stil zu aktivieren:

  1. Wenn Sie die parallele Berechnung in der Anwendungskonfiguration aktivieren möchten, prüfen Sie den aktuellen Status, um festzustellen, ob ein Eintrag vorhanden ist. Verwenden Sie den unter Aktuelle CALCPARALLEL-Einstellungen prüfen beschriebenen Prozess.
  2. Fügen Sie SET CALCPARALLEL zu einem Berechnungsskript hinzu.
  3. Aktivieren Sie bei Bedarf Essbase, um mehrere dünn besetzte Dimensionen zur Identifizierung von Aufgaben für die parallele Berechnung zu verwenden.
  4. Starten Sie die Berechnung.

Tipp:

Sie können die Verwendung von CALCPARALLEL und SET CALCPARALLEL kombinieren, wenn der Standort dies erfordert. Beispiel: Sie können CALCPARALLEL auf Serverebene deaktivieren und ein Berechnungsskript verwenden, um die parallele Berechnung nach Bedarf zu aktivieren und zu deaktivieren.

Zusätzliche Aufgaben für parallele Berechnung identifizieren

Standardmäßig verwendet Essbase eine iterative Technik, um die optimale Anzahl von Aufgabendimensionen auszuwählen, die für die parallele Berechnung im CALCPARALLEL-Stil verwendet werden sollen.

Bei Bedarf können Sie Essbase aktivieren, um eine bestimmte Anzahl von Aufgabendimensionen für die parallele Berechnung im CALCPARALLEL-Stil zu verwenden.

Beispiel: Wenn Sie eine FIX-Anweisung für ein Element der letzten Sparse-Dimension verwenden, können Sie auch die nächstletzte Sparse-Dimension aus dem Outline aufnehmen. Da jede eindeutige Elementkombination dieser beiden Dimensionen als potenzielle Aufgabe identifiziert wird, werden immer kleinere Aufgaben erstellt, wodurch die Möglichkeiten für die parallele Verarbeitung erhöht und das Load Balancing verbessert werden.

So geben Sie die Anzahl der Aufgabendimensionen für die parallele Berechnung an:

  1. Wenn Sie nicht sicher sind, prüfen Sie, ob die parallele Berechnung aktiviert ist. Verwenden Sie dazu den unter Aktuelle CALCPARALLEL-Einstellungen prüfen beschriebenen Prozess. Wenn CALCPARALLEL nicht aktiviert ist (oder SET CALCPARALLEL in einem Berechnungsskript verwendet wird), hat CALCTASKDIMS keine Auswirkungen.
  2. Optional: Essbase wählt eine Standardnummer (n) der Aufgabendimensionen aus, die für die parallele Berechnung verwendet werden sollen. Diese Nummer wird in der Anwendungslogdatei als Informationsmeldung ausgegeben. Beispiel: Parallelizing using [2] task dimensions. Um die Standardeinstellung n außer Kraft zu setzen, fügen Sie die CALCTASKDIMS-Konfigurationseinstellung für die Anwendung hinzu oder ändern Sie sie, oder verwenden Sie den Berechnungsskriptbefehl SET CALCTASKDIMS.
  3. Berechnungsskript ausführen

In einigen Fällen verwendet Essbase weniger Dimensionen zur Identifizierung von Aufgaben als in CALCTASKDIMS oder SET CALCTASKDIMS angegeben.

CALCPARALLEL mit Logmeldungen optimieren

Eine sorgfältige Analyse von Logmeldungen kann Ihnen dabei helfen zu optimieren, wie Essbase parallele Berechnungsprozesse in Aufgaben aufteilt.

Wenn Sie die parallele Berechnung von CALCPARALLEL verwenden, können folgende Logmeldungen angezeigt werden:

Current selection of task dimensions [n] will generate insufficient number of tasks [n] for parallel calculation. See whether calculation time can be improved by increasing the number of task dimensions by one (see SET CALCTASKDIMS topic in the documentation). Also, consider using FIXPARALLEL to make custom task selections that are different from CALCPARALLEL.

Wenn diese Meldung angezeigt wird, bedeutet dies, dass Essbase während einer parallelen Berechnung die Anzahl der Aufgabendimensionen nicht erhöht hat, falls die Aufgaben zu klein geworden wären. Wenn Aufgaben zu klein werden, könnte der Aufwand für die Berechnungsplanung die Vorteile der Parallelisierung überholen. Wenn Aufgaben jedoch zu groß sind, sind möglicherweise nicht genügend Aufgaben vorhanden, damit parallele Berechnungsthreads bearbeitet werden können.

Wenn die nächste potenzielle Aufgabendimension nicht die erste dünn besetzte Dimension ist, sollten Sie die Anzahl der Aufgabendimensionen mit dem Berechnungsbefehl SET CALCTASKDIMS (oder der Konfigurationseinstellung CALCTASKDIMS) um eins erhöhen und feststellen, ob dadurch die Berechnungsgeschwindigkeit verbessert wird. Verwenden Sie außerdem FIXPARALLEL, um eine benutzerdefinierte Aufgabenauswahl zu treffen, die sich von CALCPARALLEL unterscheidet (siehe FIXPARALLEL Parallel Calculation).

Current number of task dimensions [n] for parallel calculation might have caused too many tasks [n] to be generated. See whether calculation time can be improved by decreasing the number of task dimensions by one (see SET CALCTASKDIMS topic in the documentation). Also, consider using FIXPARALLEL to make custom task selections that are different from CALCPARALLEL.

Bei der parallelen Berechnung trägt eine ausreichende Anzahl von Aufgaben dazu bei, die Auswirkungen von Datenverzerrungen zu reduzieren. Zu viele Aufgaben (auch für entsprechend große Aufgaben) können jedoch dazu führen, dass der Planungsaufwand die Vorteile überwiegt. Essbase strebt einen optimalen Bereich an. Wenn die obige Meldung angezeigt wird, bedeutet dies, dass Essbase versucht hat, die empfohlene Mindestanzahl von Aufgaben zu erfüllen, indem eine weitere Aufgabendimension hinzugefügt wurde. Dabei ist es möglich, dass die obere Grenze für die Aufgabenanzahl überschritten wurde.

Wenn die letzte von Essbase ausgewählte Aufgabendimension nicht die einzige Aufgabendimension ist, sollten Sie die Aufgabendimensionen mit dem Berechnungsbefehl SET CALCTASKDIMS (oder der Konfigurationseinstellung CALCTASKDIMS) um eins verringern und feststellen, ob dadurch die Berechnungsgeschwindigkeit verbessert wird. Alternativ können Sie mit FIXPARALLEL benutzerdefinierte Aufgaben auswählen, die sich von CALCPARALLEL unterscheiden.

Parallele Berechnung von CALCPARALLEL überwachen

Sie können Ereignisse für die parallele Berechnung im Anwendungslog anzeigen. Für jeden Berechnungsdurchlauf schreibt Essbase verschiedene Informationstypen in das Anwendungslog, um die parallele Berechnung zu unterstützen.

Wenn parallele Berechnung verwendet werden kann

Wenn Sie die parallele Berechnung aktiviert haben und Essbase festgestellt hat, dass eine parallele Berechnung ausgeführt werden kann, schreibt Essbase eine Meldung im Anwendungslog:

Calculating in parallel with n threads

n steht für die Anzahl der nebenläufigen Aufgaben, die in CALCPARALLEL oder SET CALCPARALLEL angegeben sind.

Wenn aufgrund einer Formel keine parallele Berechnung verwendet werden kann

Für jede Formel, die eine parallele Berechnung verhindert (erzwingt die serielle Berechnung), schreibt Essbase eine Meldung in das Anwendungslog:

Formula on (or backward dependence from) mbr memberName prevents calculation from running in parallel.

memberName steht für den Namen des Elements, in dem die relevante Formel vorhanden ist. Sie können im Anwendungslog nach solchen Nachrichten suchen und erwägen, die Formel zu entfernen oder, wenn möglich, die relevanten Elemente als Dynamische Berechnung zu kennzeichnen, damit sie nicht im Berechnungsdurchlauf enthalten sind.

Essbase schreibt eine Meldung in das Anwendungslog, in der die Anzahl der Aufgaben angegeben wird, die gleichzeitig ausgeführt werden können (basierend auf den Daten und nicht auf dem Wert von CALCPARALLEL oder SET CALCPARALLEL):

Calculation task schedule [576,35,14,3,2,1]

Die obige Beispielmeldung gibt an, dass 576 Tasks gleichzeitig ausgeführt werden können. Nach Abschluss der 576 Aufgaben können 35 weitere gleichzeitig ausgeführt werden usw.

Der Vorteil der parallelen Berechnung ist in den ersten Schritten am größten und nimmt ab, da weniger gleichzeitige Aufgaben ausgeführt werden.

Der Parallelisierungsgrad hängt von der Anzahl der Aufgaben im Aufgabenplan ab. Je größer die Anzahl, desto mehr Aufgaben können parallel ausgeführt werden, und desto größer ist die Performance.

Wenn parallele Berechnungen zu leeren Aufgaben führen

Essbase schreibt eine Meldung in die Anwendungslogdatei, die angibt, wie viele Aufgaben leer sind (keine Berechnungen enthalten):

Info(1012681) Empty tasks [291,1,0,0,0,0]

Im obigen Beispiel gibt Essbase an, dass 291 der Aufgaben auf Ebene 0 leer waren.

Wenn das Verhältnis von leeren Aufgaben zu den im Berechnungsaufgabenplan angegebenen Aufgaben größer als 50% ist (z.B. 291/576), bietet Ihnen die Parallelisierung aufgrund der hohen Dünnheit im Datenmodell möglicherweise keine bessere Performance.

Sie können dicht besetzte Zuweisungen ändern, um die Anzahl leerer Aufgaben zu reduzieren und die Performancegewinne aus der parallelen Berechnung zu erhöhen.