Versions Compared

Key

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

...

Let’s explore the above algorithm on following example:

  • Main thread is not 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. There was a filter applied through process parameter that restricted pDimPar element range. Its value was set to A+B+C+D+E+F+G+H+I+J+K+M

  • 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:

...

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 We can now create list of elements that were assigned to each worker thread:

pThreadID

Assigned Elements from Equivalent Dimension to pDimPar

Assigned Elements from pDimPar

0

 

1

a, m

A, B, C, M

2

d

D, E, F, G

...

3

h

H, I

...

, J, K, L