-
Notifications
You must be signed in to change notification settings - Fork 224
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
Leaving JuliaOpt - where to? #358
Comments
All your points make sense to me
I share that hope |
|
Maybe worthwhile including JuliaSmoothOptimizers? Maybe even migrate to that specific domain? |
"Solver" seems to imply a focus on solving equations, whereas in my world optimization is more often about finding extrema. JuliaOptimization is available, although seems a bit like name-piracy with respect to JuliaOpt. JuliaNativeOptimization? |
I think they have a quite clear idea about what they're doing/want to do with that org, and I'm not sure it's exactly what we are doing - even if we share a lot of "interests". |
I think that it's quite normal to refer to a specific implementation of a given algorithm/idea as a solver, even if it's optimization and not equations solving, but it's fine to do something else. I don't think our friends in JuliaOpt would really appreciate JuliaOptimization. |
|
|
I think I like |
And yes, let's put |
|
What is it you want to do? (And out of curiosity, why the breakup?) |
The breakup is probably better explained here: JuliaNLSolvers/NLsolve.jl#85 , but in a nutshell JuliaOpt is going to be the JuMP<- MathPRogBase -> Backends organisation. Basically, it will give them a tidier work flow. The subset of people who are developing Optim+family and the subset of people who develop the MathProgBase-stack are very much disjoint, so it makes sense to be so on a more organizational level as well. So what do we ( Now, I may be wrong, but it seems to me that |
What we have now is an API to create problems. Nothing released on solvers yet. My main objective inside the organization was to make CUTEst.jl work. In that path, we ended up creating NLPModels.jl too, extending the API. These packages were made thinking that it should be easier to create new solvers, i.e., developers/researches could improve their workflow using these packages. See this tutorial for an example where I create a Newton solver. Now that the stable versions are released, we are back developing Optimize.jl, which is solver related stuff. It includes, or will include, some general things, like line searching, trust-region, benchmarking-made-easy, unified solver statistics, etc. This also looks at improving the workflow for researchers. We do intend to create some solvers here, hopefully performant and robust. On the other hand, we don't have the API to connect models and solvers for users who don't care what solver is being used. And although I think it's very important to have that, it is not in the near future to implement it due to time restrictions. Regardless, Optim could choose to look at NLPModels for user input, it could be more in line with #309. Mildly related, I'm experimenting extending NLPModels to Nonlinear Least Squares: https://github.com/abelsiqueira/NLSModels.jl. |
All right, so I guess we're seen some suggestions. Personally, these are the ones I prefer of the bunch (in no order): |
The precedent here is that we had a discussion with @abelsiqueira and @dpo about their organization which was previously named "JuliaOptimizers". We objected to having "JuliaOpt" as a substring of the name, so they kindly renamed it to "JuliaSmoothOptimizers". I don't know if our objection is still tenable post-reorganization. Either way, I'd ask if we as a community would like to have three GitHub organizations named "JuliaOpt", "JuliaOptim", and "JuliaOptimizers" all with quite different focuses. |
Let's just pick some name at random. I'd even tolerate using the Julia hash |
If it isn't, my preference would be to go back to JuliaOptimizers (with @mlubin's agreement) since my group has had organizations named optimizers and PythonOptimizers for quite a while, and because we'd like to develop solvers for certain nonsmooth problems. Will JuliaOpt remain JuliaOpt or change? For Optim, I could suggest JuliaSolve, JuliaOptimSolvers or the longer JuliaOptimizationSolvers. Since it's just an org name, length doesn't really matter. |
What about using the name "Optim" for the organization?
…On Sun, Feb 12, 2017 at 10:28 PM John Myles White ***@***.***> wrote:
Let's just pick some name at random. I'd even tolerate using the Julia
hash 0x3576fb94315fe94d of the string "JuliaOpt" to get us out of
deadlock. My belief is that no one who's using Optim.jl is going to be
worried about the account that its repo lives under -- except insofar as
their Git links break. And, IIUC, that's going to happen no matter what new
name we use.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#358 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABTzUpIC6AMtWh0oG6T-Vl3U6AFUqCaBks5rb83LgaJpZM4L9PPJ>
.
|
There's a user named Optim. Otherwise that would be fine. We could probably make OptimJL work as a name. Or we could just restore the repo to my user account where it lived before all of this. |
I think that still makes sense. Bikeshedding complete, JuliaNLSolvers it is.
you mean the github links? No, they still work https://github.com/JuliaOpt/Optim.jl |
Github tells me I don't have permission to do that (I guess I need to be a member of the org) |
@pkofod, you should now have admin permission to LsqFit. Let me know if that isn't sufficient. |
perfect, LsqFit has been moved. I believe all packages are moved now? |
You do need to change the url's in metadata. Not that my opinion matters much here, but I don't hear unconstrained algorithms called "solvers" anywhere near as often as for constrained MILP/NLP backends. |
Since the code in MathProgBase dispatches to pre-existing libraries, isn't the main focus of "JuliaOpt" less on the optimization per se and more about developing a simple (and beautiful) language for specifying the problems? Wouldn't it be better to have that organization choose something like |
@timholy I think your arguments make a lot of sense, but I guess @dpo and @abelsiqueira would have first pick since they were talked out of using JuliaOptimizers. @tkelman does that mean that people can't install optim right now? |
@pkofod if you have not done it already, can you set up attobot for the repos in JuliaNLSolvers? |
They can, but it's relying on github redirects which are possible to break. |
It's done |
Okay, thank you. |
We already have pure-Julia mathematical optimization solvers like Pajarito which are built around MathProgBase, so I'm not sure that's still an accurate characterization. I'm also coming to dislike the logical abstraction between solving and modeling even though I'm responsible for perpetuating it (I'll leave that for a discussion somewhere else). For both of those reasons I wouldn't support renaming JuliaOpt to something modeling-centric. On top of that, the feasible consensus to go through with this restructuring was to keep JuMP under the existing JuliaOpt GitHub organization. At this point I don't see JuliaOpt being renamed. |
@pkofod It looks like the links to documentation break. |
Edit: Just to clarify the "breaking up 💔" thing was a joke. Optim is simply moving out of JuliaOpt due to restructuring of JuliaOpt, and as a part of those organizational changes, we (in JuliaOpt) have decided that it's better for Optim to move to a separate org. No drama here :)
JuliaOpt and Optim are breaking up 💔 This is happening in full cooperation between the MathProg-stack, and Optim+friends, but hasn't been official until now. Since @johnmyleswhite it fine with the change, I am not going to argue against it.
(and, to be honest, I can see the value in having a clear org for MathProgBase at the center of the modeling extensions and the backends).
This means that we're moving to a new home. The packages involved are Optim, OptimTests, LsqFit, and then hopefully also LineSearches (I thought it was in JuliaOpt actually) and NLsolve if @sebastien-villemot is in on it, and we can work out the licensing question I've raised in private (I prefer a MIT licensed stack, as I really want anyone to take full advantage of the code - even make money without me/us making a dime off of it).
So, this thread is mainly about finding an appropriate name and setup. I must say, that this will probably not be a completely democratic setting, as some people's voice weights more than others', but I'd still love some feedback.
As stated above, I think an org with BasePackage+Optim+LineSearch+NonLinearSolvePackage would be a great thing to have. I hope we can leverage NLsolve, but if we can't, then I'm sure we can quickly use the infrastructure in Optim to get something working for us. My suggested name would be JuliaSolvers. I know this is quite generic, but I do hope that this new org can be the home of a Optimization+Rootfinding combination that shares as much code as possible and also shares API to the extent possible. At least the name is no more generic than JuliaPlots, JuliaStats, and so on.
Let me hear your opinions, and I guess we'll reach a decision quite fast.
@KristofferC @sebastien-villemot @anriseth @cortner @timholy @blakejohnson @mlubin + all the people I forgot
The text was updated successfully, but these errors were encountered: