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

Performance regression in v0.5 #77

Open
MikaelSlevinsky opened this issue Oct 5, 2016 · 2 comments
Open

Performance regression in v0.5 #77

MikaelSlevinsky opened this issue Oct 5, 2016 · 2 comments

Comments

@MikaelSlevinsky
Copy link
Member

Due to certain regressions affecting ApproxFun in Julia v0.5 (JuliaApproximation/ApproxFun.jl#385), the fundamental solution of the Gravity Helmholtz equation is about 100-200 times slower than in v0.4. Compare the following timings with the original post #42.

julia> using ApproxFun, SingularIntegralEquations

julia> x = 10complex(2rand(1000)-1,2rand(1000)-1);y = 10complex(2rand(1000)-1,2rand(1000)-1);E = 0.0;

julia> @time lhelmfs(x,y,E);
  2.372244 seconds (4.81 M allocations: 89.139 MB, 0.72% gc time)

julia> x = 10complex(2rand(1000)-1,2rand(1000)-1);y = 10complex(2rand(1000)-1,2rand(1000)-1);E = 10.0;

julia> @time lhelmfs(x,y,E);
  4.569159 seconds (9.28 M allocations: 171.868 MB, 0.60% gc time)

julia> x = 10complex(2rand(1000)-1,2rand(1000)-1);y = 10complex(2rand(1000)-1,2rand(1000)-1);E = -10.0;

julia> @time lhelmfs(x,y,E);
  4.395984 seconds (8.89 M allocations: 164.634 MB, 0.64% gc time)
@MikaelSlevinsky
Copy link
Member Author

This appears to have improved in 0.6.0-pre.alpha.173:

julia> using ApproxFun, SingularIntegralEquations

julia> x = 10complex.(2rand(1000)-1,2rand(1000)-1);y = 10complex.(2rand(1000)-1,2rand(1000)-1);E = 0.0;

julia> @time lhelmfs(x,y,E);
  0.016189 seconds (11 allocations: 63.500 KiB)

julia> x = 10complex.(2rand(1000)-1,2rand(1000)-1);y = 10complex.(2rand(1000)-1,2rand(1000)-1);E = 10.0;

julia> @time lhelmfs(x,y,E);
  0.027834 seconds (11 allocations: 63.500 KiB)

julia> x = 10complex.(2rand(1000)-1,2rand(1000)-1);y = 10complex.(2rand(1000)-1,2rand(1000)-1);E = -10.0;

julia> @time lhelmfs(x,y,E);
  0.024978 seconds (11 allocations: 63.500 KiB)

@MikaelSlevinsky
Copy link
Member Author

Somehow, the GreensFun constructor still stalls on lhelmfs.

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

No branches or pull requests

1 participant