This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
howtos:toolcoding:performance_tuning [2011/06/22 19:45] chris.strashok |
howtos:toolcoding:performance_tuning [2011/06/22 21:01] (current) chris.strashok |
||
---|---|---|---|
Line 31: | Line 31: | ||
The input object is A[a,b,c,d]: | The input object is A[a,b,c,d]: | ||
- | If the key dimension is d, the TOOL will bring in all of the elements contained in the dimension d into memory. The memory requirement can be written as memory = extent(d). It will then process that section and then move on to the next section also size extent(d). This will be repeated x times where x = extent(a) * extent(b) * extent(c). | + | If the key dimension is d, the TOOL will bring in all of the elements contained in the dimension d into memory. The memory requirement can be written as memory = extent[d]. It will then process that section and then move on to the next section also size extent[d]. This will be repeated x times where x = extent[a] * extent[b] * extent[c]. |
- | If the key dimension is b, the TOOL will bring in all of the elements contained in the dimensions b, c and d into memory. The memory requirement can be written as memory = extent(b) * extent(c) * extent(d). It will then process that section and then move on to the next section. This will be repeated x times where x = extent(a) | + | If the key dimension is b, the TOOL will bring in all of the elements contained in the dimensions b, c and d into memory. The memory requirement can be written as memory = extent[b] * extent[c] * extent[d]. It will then process that section and then move on to the next section. This will be repeated x times where x = extent[a] |
=== Case Study: dimension mapping of 116M elem object === | === Case Study: dimension mapping of 116M elem object === | ||
Line 102: | Line 102: | ||
The input objects are A[a,b,c,d] and B[e,f,a,b]: | The input objects are A[a,b,c,d] and B[e,f,a,b]: | ||
- | If the input objects are used as they are shown above, TOOL will bring in all of the elements contained in the dimensions a, b, c, d, e and f into memory. The memory requirement can be written as memory = extent(a) * extent(b) * extent(c) * extent(d) * extent(e) * extent(f). | + | If the input objects are used as they are shown above, TOOL will bring in all of the elements contained in the dimensions a, b, c, d, e and f into memory. The memory requirement can be written as memory = extent[a] * extent[b] * extent[c] * extent[d] * extent[e] * extent[f]. |
- | However, if we reorder the dimensions of object B to look like B[a,b,e,f] then TOOL will bring in the all of the elements contained in the dimensions c, d, e and f into memory. The memory requirement can be written as memory = extent(c) * extent(d) * extent(e) * extent(f). This will be repeated x times where x = extent(a) * extent(b). | + | However, if we reorder the dimensions of object B to look like B[a,b,e,f] then TOOL will bring in the all of the elements contained in the dimensions c, d, e and f into memory. The memory requirement can be written as memory = extent[c] * extent[d] * extent[e] * extent[f]. This will be repeated x times where x = extent[a] * extent[b]. |
Line 115: | Line 115: | ||
The input object is A[a,b] and the output object is B[c,d] | The input object is A[a,b] and the output object is B[c,d] | ||
- | TOOL will bring in all of the elements contained in the dimensions a, b, c, and d into memory. The memory requirement can be written as memory = extent(a) * extent(b) * extent(c) * extent(d) | + | TOOL will bring in all of the elements contained in the dimensions a, b, c, and d into memory. The memory requirement can be written as memory = extent[a] * extent[b] * extent[c] * extent[d] |