Kolejność przydzielania i przetwarzanie

Dlaczego kolejność ma znaczenie

W wielopoziomowym modelu kosztowym nie wszystkie alokacje są realizowane jednocześnie. Kolejność przetwarzania przydziałów ma decydujący wpływ na ostateczne wyniki, ponieważ kolejne przydziały zależą od wyników poprzednich.

Rozważmy prosty łańcuch: dział „Źródła kosztów” przypisuje koszty do działu „Dostawcy”, a dział „Dostawcy” przypisuje je do jednostek biznesowych. Przedział środków dla dostawców musi zostać zrealizowany, zanim jednostki biznesowe będą mogły otrzymać swoją część — w przeciwnym razie nie będzie żadnych środków do rozdzielenia między dostawców.

Sekwencjonowanie oparte na zależnościach

TBM Studio automatycznie ustala kolejność przydzielania na podstawie wykresu zależności modelu. System analizuje, które obiekty są źródłem danych dla innych obiektów, i ustala kolejność przetwarzania uwzględniającą te zależności.

Zasady są następujące:

  • Przydzielanie pamięci dla obiektu następuje dopiero po zakończeniu wszystkich przydzielania pamięci dla tego obiektu
  • Obiekty bez zależności nadrzędnych (obiekty źródłowe) są przetwarzane w pierwszej kolejności
  • Obiekty znajdujące się na tym samym poziomie i niebędące od siebie zależne mogą być przetwarzane równolegle
  • Sekwencja przetwarzania jest deterministyczna — ten sam model zawsze generuje tę samą kolejność wykonywania

Alokacje wielopoziomowe

W większości rzeczywistych modeli koszty przechodzą przez wiele warstw pośrednich, zanim dotrą do miejsca przeznaczenia. Nazywa się to alokacją wielopoziomową lub wieloetapową.

Jak działają przepływy wielopoziomowe

Prześledźmy koszt w wysokości 1 000 dolarów w modelu pięciopoziomowym:
Warstwa Obiekt Co się dzieje Wynik
1 Źródło kosztów Kwota 1 000 USD zostaje zaksięgowana z księgi głównej jako koszt centrum danych wartość źródłowa 1 000 dolarów
2 Dostawcy Dopasowano do firmy Dell na podstawie identyfikatora dostawcy; kwota 1 000 USD trafia do firmy Dell Firma Dell otrzymuje 1 000 dolarów
3 Usługi techniczne Przydzielone na moc obliczeniową (70%) i pamięć masową (30%) w oparciu o rzeczywiste wykorzystanie Obliczenia: 700 USD, Pamięć masowa: 300 USD
4 < Kwota 700 dolarów przeznaczona na rozwiązania informatyczne rozkłada się na system ERP (400 dolarów) i CRM (300 dolarów) w zależności od wolumenu transakcji ERP: 400 USD, CRM: 300 USD
5 Jednostki biznesowe Kwota 400 USD przeznaczona na system ERP dzieli się na dział sprzedaży (240 USD) i dział inżynierii (160 USD) w oparciu o liczbę użytkowników Cena detaliczna: 240 USD, cena hurtowa: 160 USD

Na każdym poziomie moduł przydzielający stosuje reguły zdefiniowane dla danego obiektu modelu. Wynik jednego etapu stanowi dane wejściowe dla następnego. Właśnie dlatego tak ważne jest odpowiednie ustalenie kolejności działań — i właśnie dlatego schemat modelowy jest nieoceniony dla zrozumienia przepływu kosztów.

Zależności cykliczne

Zależność cykliczna występuje wtedy, gdy obiekt A przydziela pamięć obiektowi B, a obiekt B przydziela pamięć z powrotem obiektowi A (bezpośrednio lub poprzez łańcuch obiektów pośrednich). Powoduje to powstanie pętli nieskończonej, której nie da się przerwać w ramach zwykłego przetwarzania sekwencyjnego.

Podejście TBM Studio:

  • Warunek wstępny: Model graficzny nie może zawierać cykli. TBM Studio weryfikuje schemat zależności i zapobiega tworzeniu konfiguracji alokacji, które mogłyby prowadzić do powstawania pętli.
  • Rekurencja jako wyjątek: Alokacja rekurencyjna (sekcja 4.3.4 ) jest jedynym obsługiwanym mechanizmem służącym do obsługi wzajemnych zależności. Wykorzystuje przetwarzanie iteracyjne z ustawionymi limitami dokładności i liczby iteracji, aby osiągnąć zbieżność wyniku.
  • Wykrywanie: Jeśli nieumyślnie powstanie zależność cykliczna (zazwyczaj w wyniku złożonych konfiguracji obejmujących wiele obiektów), proces kompilacji zgłasza błąd zamiast wejść w pętlę nieskończoną.
Uwaga:

Unikanie zależności cyklicznych

Zaprojektuj hierarchię modelu tak, aby przebiegała w jednym kierunku — od źródeł kosztów na najniższym poziomie do odbiorców biznesowych na najwyższym. Jeśli okaże się, że potrzebujesz alokacji wstecznej, zastanów się, czy bardziej odpowiednia byłaby alokacja rekurencyjna, czy też zmiana struktury hierarchii modelu.