Here is the basic setup:
We have an allocation requirement that waterfalls allocation amounts from one pool to another. So Pool 10 may allocation amounts to Pool 20, 23, 45, etc. Pool 15 will have amounts allocated to pool 23, 45 and 52. Because it is possible that allocations from different source pools may target the same pool and account, we use a CELLINCREMENT to write to the target cell.
We have a matrix cube that contains all the source pool/account and target pool/accounts flagged for each valid intersection, so the intersection of a source that should allocation to a target is flagged with the value of 1.
- The matrix cube is the datasource
All datasource subsets are static.
CellGetN is used to read the source pool/account cell
CellIncrement is used to write to the target pool/account.
Because the matrix cube does not contain a time dimension, the time dimension is looped through in the data section of the TI.
We have two lines in the DATA tab that perform the CellIncrement. While a number of test with various sections of code were skipped or commented out, performance was fine until the first CellIncrement line was uncommented. Then we jumped to over a ten minute time. All test results were repeatable.
I tried substituting CELLGETN and CELLPUTN to see if there was some problem with CellIncrement, but performance was the same, over ten minutes.
Could it be that the act of writing to the cube is affecting the reading operation? The source cells are rule-calculated and I've not tested recalculating the allocation in the TI.