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

Parameterizing Solver as Solver{T} #72

Closed
sshin23 opened this issue Sep 9, 2021 · 4 comments
Closed

Parameterizing Solver as Solver{T} #72

sshin23 opened this issue Sep 9, 2021 · 4 comments

Comments

@sshin23
Copy link
Member

sshin23 commented Sep 9, 2021

This change will allow running MadNLP with different precisions (as long as compatible derivative callbacks and linear solvers exist).

@frapac
Copy link
Collaborator

frapac commented Sep 9, 2021

That's a good idea. I think it could also help on the GPU. Also: are you mentioning the linear solvers or the interior point solvers?

I would also suggest to use a different naming between the interior point solver (IPMSolver{KKT}?) and the linear solvers (LinearSolvers{T}?).

@sshin23
Copy link
Member Author

sshin23 commented Sep 10, 2021

@frapac yes, I think we need some consistent naming convention. Maybe we can do the following.
Solver <: AbstractInteriorPointSolver -> InteriorPointSolver{T} <: AbstractInteriorPointSolver{T}
MadNLPMa27.Solver <: AbstractLinearSolver -> Ma27Solver{T} <: AbstractLinearSolver{T}

Also, now that we aiming to make everything run on GPU, maybe we need to add one more signature and make something like InteriorPointSovler{T,V{T}}, so that we can support both InteriorPointSovler{Float64,Vector{Float64}} and InteriorPonitSolver{Float64,CuVector{Float64}}. How does that sound?

@sshin23
Copy link
Member Author

sshin23 commented Sep 10, 2021

I think what I wrote might be a bit outdated, but you know what I'm saying 🤣

@frapac
Copy link
Collaborator

frapac commented May 18, 2022

Closing this issue as it is deprecated.

@frapac frapac closed this as completed May 18, 2022
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

2 participants