Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  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.