- #1
avikarto
- 56
- 9
This is my first time attempting to use the MKL's FFT functions, and I'm having trouble understanding them. The available examples (https://software.intel.com/en-us/node/522290) provide little insight into the reasons for doing things, and looking into the commands themselves doesn't provide much more information. Any help with the following questions would be appreciated:
1) What is the "dimension" of a transformation? Since my coefficients are 4x4 matrices, is it 2D? Or do we consider that we have a list of matrix coefficients, making the transformation 3D?
2) The fortran examples indicate the necessary use of the "equivalence" command at higher dimensions than 1, which looks like a memory manipulation command needed to put all array elements in line in memory. I am confused how to implement this for a list of matrices. Is the idea to form one giant 1D array of length (4 x 4 x NumberOfMatrices) and pass that to the transform? If so, how does the routine know when to break up the array into individual matrix coefficients for the output?
3) Another concern about memory is in regards to the "in-place" vs "out-of'place" variations of the routine. From what I understand, "out-of-place" is necessary for running code in parallel, but will the routine still run in series if defined this way? Is "in-place" then simply an optimization for series execution?
Thanks.
1) What is the "dimension" of a transformation? Since my coefficients are 4x4 matrices, is it 2D? Or do we consider that we have a list of matrix coefficients, making the transformation 3D?
2) The fortran examples indicate the necessary use of the "equivalence" command at higher dimensions than 1, which looks like a memory manipulation command needed to put all array elements in line in memory. I am confused how to implement this for a list of matrices. Is the idea to form one giant 1D array of length (4 x 4 x NumberOfMatrices) and pass that to the transform? If so, how does the routine know when to break up the array into individual matrix coefficients for the output?
3) Another concern about memory is in regards to the "in-place" vs "out-of'place" variations of the routine. From what I understand, "out-of-place" is necessary for running code in parallel, but will the routine still run in series if defined this way? Is "in-place" then simply an optimization for series execution?
Thanks.