mechmotum/cyipopt

Ipopt exits soon after starting without any error message

AnirudhPuligandla opened this issue · 7 comments

I installed cyipopt from source, on windows, by following the instructiona at https://cyipopt.readthedocs.io/en/stable/install.html via Miniconda. I could install only binaries as jax is not availbale on windows. I installed jax separatele from https://github.com/cloudhan/jax-windows-builder . I am running python 3.7. The examples were running fine. I am having an unexpected crash without any particular. The issue is that the program crashes without any particular error message.

I posted a detailed issue on stackoverflow - https://stackoverflow.com/questions/75276859/ipopt-exits-soon-after-starting-without-any-error-message?noredirect=1#comment132943669_75276859

Can you try solving it without jax?

I don't know how to differentiate the objective. So, I don't think I can run it without jax.

Ipopt will numerically differentiate your objective and constraints if you enable that setting. It is slower, but maybe worth testing. Knowing if it only occurs with jax in the code would at least give a clue.

The only thing I can think of at the moment is that jax and ipopt are using different blas/lapack dependencies. Our builds try to ensure that all the core dependencies are the same.

I tested my program without jax using the finite-difference-values setting for gradient_approximation option. It works fine until completion.

Then an incompatibility in your Jax binaries and the resulting cyipopt/ipopt binaires is likely the cause, but it would take some more info and debugging to try to figure it out. It may be easier to run this in a linux or mac container on Windows.

For the moment, I am fine with using it without jax. Actually, jax makes the interface more complicated as it was not supporting if loops. My optimization model contains plenty of if loops some which, I am afraid, cannot be modified to follow jax's syntax. So, I am comfortable using cyipopt without jax and we could close this issue without having to go through the effort of checking dependency issues in my build, if that is ok.

Ok, we will close this issue. Good luck!