Context: I am using LAPACK/BLAS/MKL in C to diagonalize and multiply matrices of side length O(10000).
Normally, diagonalization procedures like zheev
and dsyev
in LAPACK/MKL require additional memory. This is allocated by passing LWORK=-1
and then allocating the returned value. Most interfaces provide a way to take this extra code away and just pass on the array values, while the explicit interface is available with an extra _work
in the name.
However, the documentation for matrix multiplication routines like dgemm
and zgemm
does not mention any such working space requirements.
Question: I want to know if there is actually a memory requirement, but it is just hidden away, and I haven't found it despite looking for it? Or is there no additional memory requirement?
Purpose: Asking this as I need to know memory requirements in order to run the code on a HPC cluster.