Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Given the rules laid down earlier the worker threads are responsible to allocate both source and target views and clean target view before running any data transformation. Since pDimPar dimension exists only in the source cube the worker thread must find a mapping between source and target cubes to be able to allocate elements in dimension available in target cube that corresponds to the pDimPar in the source cube. When constructing the mapping it must be assured that no elements in the target dimension equivalent to pDimPar are shared between two or more threads.

The general case described above applies to cases when data need to be copied from operative to planning cubes and vice versa. In FPM model there are mappings provided between operative and plan dimension by means of bi-directional mapping attributes. These are utilised to provide elements to thread allocation in cases of operative to planning cubes (and vice versa) data transfers.

Let’s consider a process that will copy data from operative to planning cube. The elements to threads mapping technique will have following steps:

  1. Identify a set of source elements in pDimPar dimension - this applies if there was a parameter filter specified for pDimPar when running the process

  2. Make a set in a dimension of target cube equivalent to pDimPar by projection from the source set by utilizing mapping attributes

  3. Apply modulo allocation algorithm on the target dimension set to allocate target dimension elements to threads

  4. Use mapping attribute to prepare set of source elements in pDimPar - the set will reflect the element allocation to threads provided in previous step

Let’s explore the above algorithm on following example:

  • Main thread is not

  • pDimPar dimension elements (source cube): A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P

  • Equivalent dimension elements (target cube): a, d, h, m

  • Mapping between pDimPar and the equivalent dimension:

pDimPar

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Equivalent
dimension

a

a

a

d

d

d

d

h

h

h

h

h

m

m

m

m

ad 1) Source set of elements in pDimPar:

  • The filter that has been used for elements in pDimPar was: A+B+C+D+E+F+G+H+I+J+K+M

  • The set of source elements is A, B, C, D, E, F, G, H, I, J, K, L, M

ad 2) Target elements in equivalent dimension to pDimPar:

  • Set in equivalent dimension to pDimPar is: a, d, h, m

ad 3) Modulo algorithm applied on set as derived in step 2:

Element

a

d

h

m

pThreadID

1

2

3

1

ad 4) Apply mapping on set from step 3) and project pThreadID to source set of elements in pDimPar from step 1:

pDimPar

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Equivalent
dimension

a

a

a

d

d

d

d

h

h

h

h

h

m

m

m

m

pThreadID

1

1

1

2

2

2

2

3

3

3

3

3

1

1

1

1

For the example below, the number of working threads pMaxThreads is set to 4, main thread is not participating in the data processing. Child threads have pThreadID set to 1, 2 and 3. For simplicity elements in parallel dimension have symbolic names A, B, C, D, E, F, G, H, I and J.

  • No labels