Elemental.jl icon indicating copy to clipboard operation
Elemental.jl copied to clipboard

Documentation for the package

Open ViralBShah opened this issue 5 years ago • 5 comments

Filing a help needed issue to put together Documenter based documentation for this package.

ViralBShah avatar May 28 '20 14:05 ViralBShah

@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 ^

ViralBShah avatar May 28 '20 15:05 ViralBShah

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...

alanedelman avatar Jun 05 '20 18:06 alanedelman

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)

ViralBShah avatar Jun 05 '20 18:06 ViralBShah

I'm a little surprised by this. Would it be easy to try MKL's LAPACK.gesvd!. Our svd calls LAPACK.gesdd!.

andreasnoack avatar Jun 05 '20 20:06 andreasnoack

LAPACK+OpenBLAS (the julia default) is 170s.

Should be easy to try gesvd - just have to go through LAPACK docs and the wrappers.

ViralBShah avatar Jun 05 '20 20:06 ViralBShah