Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmarks #21

Open
acroy opened this issue Nov 19, 2017 · 7 comments
Open

Benchmarks #21

acroy opened this issue Nov 19, 2017 · 7 comments

Comments

@acroy
Copy link
Owner

acroy commented Nov 19, 2017

As briefly discussed in #9 and #18 having benchmarks of a couple of "real world problems" would be nice. Some suitable examples are provided in this paper, among them the 3D quantum harmonic oscillator. Additionally, @mforets suggested to "use Hurwitz-stable matrices arising from control systems".

New benchmarks should go into the folder benchmarks/ and this issue can be used for discussions.

@mforets mforets mentioned this issue Nov 20, 2017
7 tasks
@mforets
Copy link
Contributor

mforets commented Nov 23, 2017

Do you have any preferred data format? I have been using MAT.jl. There is also HDF5.jl.

@mforets
Copy link
Contributor

mforets commented Nov 23, 2017

I'll try PkgBenchmark.jl. Do you have experience with it? It allows to define benchmark groups and benchmark between different branches.

@acroy
Copy link
Owner Author

acroy commented Nov 23, 2017

Under the hood MATLABs mat format also uses hdf5, so from that perspective it probably doesn’t matter. If we stick to Julia, we could also use JLD. For sparse matrices there is also HarwellRutherfordBoeing.jl, which should be able to read the matrices provided with EXPOKIT.

PkgBenchmark.jl sounds very nice - I haven’t tried it yet.

@mforets
Copy link
Contributor

mforets commented Jun 7, 2018

See PR #28 for a benchmark script using PkgBenchmark. I used JLD to store the matrices as you suggested.

@matteoacrossi
Copy link

As we disccused in #30, I'd be interested in having a common benchmark suite for the package ExpmV.jl, that uses a different algorithm. I'm not really an expert of matrix exponentiation and I don't know how their speed and accuracy depends on the features of the matrix, so it would be interesting to have a comprehensive suite, including real-life matrices from different fields.

I don't know what would be the best way to implement this (a new package? or a new repository?) so that both packages can take advantage of the benchmark suite.

@GiggleLiu
Copy link
Contributor

As a real world application, please consider the householder reflection 2.*v*v' - eye(N).
Normally, one should use its low rank decomposition like

H(x) = 2 .* v*(v'*x) - x

which is a linear operator.

I really hope ExpmV can also support a general linear operator as the input too.

@acroy
Copy link
Owner Author

acroy commented Aug 10, 2018

@matteoacrossi I think a separate package would make sense - possibly starting from #28. Everyone interested could add their method(s), run the benchmark suite and push the results. We would have to find a way to visualize the results somehow, but that is a separate issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants