-
Notifications
You must be signed in to change notification settings - Fork 11
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
Add support for macOS (everything but HSL solvers) #69
Comments
Looks like my machine is using clang by default. We want to use gfortran instead. |
Looks like you don't have boost libraries installed. I set the scripts up to use gcc. Not really sure about clang. For some things it may work, but I probably hard coded gcc into the property library make files. |
I set |
I installed boost with |
Now I'm getting this error message:
|
For this you'll want to install, guessing, something like libboost-dev with home brew. |
I removed boost with conda and ran |
I searched a bit maybe |
Yep, I'm trying
|
You can set the BOOST_HEADER environment variable as described her https://github.com/IDAES/idaes-ext/blob/main/src/Makefile.in. Boost used to be a bigger issue before everything came precompiled. A lot of boost is implemented in header files, so I think if you have it and can track down the headers that's enough to make it work. |
I got it to work. I pushed my code as a new branch: |
I now have |
Yeah. There is an OS string missing. I guess you had no way to know to set an environment variable for it. Anyway between the two |
@eslickj @ksbeattie @michaelbynum I successfully compiled the IDAES-specific libraries (e.g., thermo functions). See my email for the file. I think the next step is to post this to GitHub. I see there are a few special ways to run get-extensions:
or
My suggestion is to use the URL option. I can then try on my macOS laptop. (I compiled these on my macOS desktop.) If that works, I can get a few macOS users in my group to give it a try. I anticipate we'll run into a few more snags to get this working on the first computer we test. |
Yes, we'll want to use the URL option. Otherwise, IDAES will give up when it detects macOS: |
Actually, the code linked above installs both the IDAES libraries and solvers at the same time. We might need to compile Ipopt without HSL to get macOS support working. |
@adowling2 I think the solvers package includes pynumero, Ipopt, and k_aug. I think we can compile all except k_aug without hsl. May need to give this some thought. But I think we can get a full working set of binaries maybe omitting k_aug without HSL. I think the URL option also fails from Mac, but I can make whatever changes we need to make it act right. The url option can be used to install from your local drive too like |
Update: binaries compiled on macOS 10.15 will not work with macOS 10.13. |
Update: it appears part of conda doesn't work in macOS 10.13.
I cannot run |
I updated my computer. I'm now able to run IDAES. @eslickj You are correct that IDAES throws an exception:
results in
For clarity, I put the two |
Update: I got the binaries to work on the computer I compiled them on. I created this PR with a one-line change in IDAES: IDAES/idaes-pse#162 I'm now recompiling the extensions with my academic HSL license to test the workflow. These will not be redistributed. |
Update: I was able to run the IDAES tests using my compiled binaries on macOS installed via
So this is positive news. @eslickj @michaelbynum I'm having trouble compiling idaes-ext using HSL on my local machine. Lots of clang versus g++ conflicts. We can talk more during our Zoom meeting next week. |
I figured out the clang/gcc issue. Right now I'm stuck on k_aug. There seems to be a linker issue.
|
I'm still stuck on compiling k_aug:
|
I think I got it to work ;) |
I used
Edit: I believe these binaries we compiled on my desktop and then tests on the same machine. |
@adowling2 that's awesome. Now we just have to figure out if they work on MacOS in general or if there may be shared library or version issues. We can talk Tuesday, but the non-HSL versions should be okay to add to like a Mac Testing release or something to make it easy for people to try out. I'll modify the get-extensions to only raise the exception about unsupported MacOS only if the files are missing at the URL you point it to, so we won't have to deal with that issue. We can keep testing with |
Update: I installed the binaries (including HSL) compiled on one macOS machine (Mojave) on a different macOS machine (Big Sur). On the different machine, 300+ tests are failing, many with |
I also reran the tests with the non-HSL binaries. Lots of failing tests:
Here are some common error messages:
|
I switched over to the with HSL folder on the desktop. I'm still getting this error:
Looks like HSL is getting skipped:
Next step:
|
Here is the debug output from compiling with HSL:
|
There was a strange zip issue creating a coinhsl folder inside the coinhsl folder. I do not know what I did to fix it. I recently committed updated macOS scripts. Running |
@eslickj @michaelbynum Good news. We've tested these instructions on 7+ macOS computers ranging from High Sierra to Big Sur. I think we have a solid set of instructions. There is still work to be done on getting the executable to be transferable between machines. I'm going to open a PR. @eslickj, I'll need your help cleaning up the bash scripts. |
Related to: IDAES/idaes-pse#148 and IDAES/idaes-pse#157 |
I think I have Arm64 extensions for macOS ready to go. I'm going to close this and we can add new specific issues moving forward. |
Goal: update idaes get-extensions to partially work with macOS.
Here is what happens when I run
sh ./scripts/compile_libs.sh
:@eslickj @michaelbynum @ksbeattie any thoughts?
The text was updated successfully, but these errors were encountered: