-
-
Notifications
You must be signed in to change notification settings - Fork 84
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
Adding CUTEst.jl to the optimization benchmarks #1036
base: master
Are you sure you want to change the base?
Conversation
Is gfortran still required after JuliaSmoothOptimizers/CUTEst.jl@df91b3c ? Is there anything not in the jll? Maybe @staticfloat can help here. |
I am not sure to be honest, if the jll makes gfortran available system-wide, it should probably work. As far as I know, CUTEst.jl performs a simple test to verify if gfortran exists in the system by calling it in a shell and checking for errors |
We ship |
What exactly is asking/calling for gfortran @abelsiqueira? |
Sifdecode, to decode the SIF file, which gets called by CUTEstModel. Things might have changed recently. Cc. @amontoison @dpo @tmigot |
@alonsoC1s I'm working on a new release (v0.14.0) with many modifications (support of Windows as well as single and quadruple precision).
We don't precompile the problems to support problems of variable size. We also have 1500 problems so it's 4500 libraries if we want to precompile everything (with fixed size). |
That's very non-standard? Seems odd to bundle an artifact on some systems but not others. Also, it doesn't make much sense given @staticfloat's comment that it's already bundled with Julia? |
You didn't understand the message of @staticfloat. I did a copy of the Binaries and libraries of |
Ask me again in ~2 months, I should have implemented it in |
So do we build add gfortran as a buildkite dep in the meantime? |
@ChrisRackauckas that could work. I can also work on this locally and leave the PR to be revised when the functionality lands on the new versions. I don't know how labour-intensive temporarily adding gfortran to buildkite is, but it's probably best to avoid fixes that will soon be unnecessary |
You should be able to either add it to the rootfs image being used, or just |
You need to bump the manifest and Symbolics version. Since gfortran is now installed, this should be finishable. |
Yep, I just saw the railed build. I'll fix the manifest, try again, and once I can see some preliminary results I can write something about them and write the rest of the benchmarks |
problems on this section. | ||
|
||
```julia | ||
eq_bou_problems = CUTEst.select(min_con=1, only_equ_con=true, only_free_var=false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CUTEst.select
is still available for backward compatiblity but the exported function is select_sif_problems
.
https://jso.dev/CUTEst.jl/dev/classification/#CUTEst.select_sif_problems
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the tip. Should I open an issue in CUTEst.jl (or the JSO page) to update the documentation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Open an issue please. I updated the documentation of CUTEst.jl but I forgot the tutorial.
@thazhemadam can you take a second look at this? |
efbcb00
to
babe239
Compare
Did the benchmark get stuck or does it just take really really long? |
Maybe split this into a few different scripts for the major groups? Seems like it's running fine though so it's just a bit of file management. |
I could reduce the scope by focusing on particular groups of problems. In total there's several thousand problems, some of which are rather large |
It's fine that it's large, but if you split it to multiple files then it can run in parallel and we could also isolate if there's one section that is much longer than the others. It looks like
that chunk might just be stuck, while others completed. |
Sure, I'll start splitting into files. Hopefully that resolves the stuck chunk or at least makes it easier to see where it's getting stuck |
…ks are run" This reverts commit 5229720. Since the sandbox is run as a user and not root, packages cannot be installed due to insufficient permissions.
4791b1f
to
80578c2
Compare
It looks like it's stalling in the first solve. Every solve really. @alonsoC1s was it doing this locally for HIER13? |
I only did some very limited testing locally, basically confirming I didn't have any runtime errors. I did try solving manually some problems like Rosenbrock and it worked as expected, as long as the models were finalized as I took care of doing in the testing loop |
In the process of introducing some filtering to reduce the number of benchmarks so that the CI job doesn't stall I think I might have found some problems that fail silently. For instance, I identified that one of the problems that stall, even at 2 variables, is ZECEVIC3.
Which produces this error when optimized:
The Ipopt output was silenced on the original weave script |
Interesting. But why would that cause it to stall? |
This PR leverages the integration of CUTEst.jl into the SciML umbrella to add all problems in the CUTEst collection to a set of optimization benchmarks. Resolves #935
To complete this PR, the building infrastructure will have to be changed to manually install
gfortran
as required by CUTEst.jl.