-
Notifications
You must be signed in to change notification settings - Fork 526
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
Support for upcoming knitro python package #3478
base: main
Are you sure you want to change the base?
Support for upcoming knitro python package #3478
Conversation
Hi @tvignon-artelys - immediate feedback is to please add tests to ensure that the interface is working as intended. |
Hi @mrmundt , I don't quite see what kind of tests I could add. Best regards, |
Also the Read the Docs build appears to have failed for reasons that are unclear to me and can not be related to the modification in this PR |
Re this: Confirmed, not related to you. I have a ticket open with sphinx about it. I have opened #3479 as a stop-gap until the true issue is fixed. |
We would not require multiple methods of installation; one would be sufficient to ensure functionality. We recommend adding the logic for installation to the two You can view other PRs that added support for different solvers for examples of what testing looked like, e.g., #3200 - https://github.com/Pyomo/pyomo/pull/3200/files#diff-4b8b6f8dad3b568afc0c32a308cf635fc6469a5196aba0ecacf850697d226c7f, https://github.com/Pyomo/pyomo/pull/3200/files#diff-1187672cba3850c20aff8ae1b0e9e978d0431611be69458787407903f6cda984 |
Hi, |
Pyomo has two testing frameworks. The tests on GHA test everything that can run without licenses (we have not identified a suitable approach to managing licenses on a public testing infrastructure). Testing that requires a license (either because the test is too large for a solver's demo mode or because the solver lacks a demo mode) are run by a Jenkins instance using machines that are internal to Sandia and host software licenses that have been granted by the solver vendors for the purpose of testing Pyomo. |
@jsiirola Thanks for your reply ! Given that tests for Knitro already exist in the workflows, I imagine that they are run on the internal Sandia Jenkins instance. What extra testing would you then expect for this PR ? |
@tvignon-artelys: we do not have a license for knitro - those tests are skipped on all our testing platforms. I believe those tests were stubbed in more than 10 years ago by an external partner who was using knitro, but have never been run by the automated CI/CD systems. Right now, there is no knitro-specific code in the code base: the solver runs through the generic ASL interface. As we cannot currently test knitro, I don't think we call it an "officially" supported solver. This PR would change that, and to @mrmundt's point, if we have solver-specific code in the project, we should find a way to test it / verify it actually works (both now and into the future). Separately, I haven't had a chance to put together a review of this PR, but I think we will want to take a different approach. Solver-specific code should really be in solver-specific derived classes and not in the base class (this is what we do for Ipopt and Conopt). In addition, it would probably be better to work directly with the underlying |
Fixes # .
Summary/Motivation:
We at Artelys are currently developing a Python package for Knitro which will be released soon. This package will contain among other things a knitroampl executable, which is the one called when solving a Pyomo model with Knitro. We prefer our package not to modify environment variables such as the PATH like the packages for Xpress or other solvers do. This pull request provides simple and seamless integration between Pyomo and the upcoming Knitro python package.
Changes proposed in this PR:
Legal Acknowledgement
By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution: