Documentation for the package
Filing a help needed issue to put together Documenter based documentation for this package.
@andreasnoack Could you list in the README, the current set of capabilities available in the package, and a sort of quick roadmap of the next set of things to add? This will help people pick up the project.
@alanedelman ^
i'd love for performance guidance right on top of when an svd from elemental might be beneficial --- example a statement that suggests that at least on one machine with 16 processors, we found a performance increase over lapack with mkl and open blas.....
and if there is a way others can add performance anecdotes in a useful way...
Julia with MKL for SVD:
julia> a = randn(10^4,10^4);
julia> using LinearAlgebra
julia> @time u,s,v = svd(a)
136.560808 seconds (258.16 k allocations: 4.485 GiB, 0.16% gc time)
With Elemental using 20 processors on a single box using the example in the README:
julia> @mpi_do man Elemental.gaussian!(A, 10000, 10000);
julia> @time @mpi_do man U, s, V = svd(A);
80.731189 seconds (2.68 k allocations: 141.296 KiB)
I'm a little surprised by this. Would it be easy to try MKL's LAPACK.gesvd!. Our svd calls LAPACK.gesdd!.
LAPACK+OpenBLAS (the julia default) is 170s.
Should be easy to try gesvd - just have to go through LAPACK docs and the wrappers.