-
Notifications
You must be signed in to change notification settings - Fork 9
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 optional MKL and support for aarch64 #115
Conversation
This set of PRs is to allow GEOS to build without MKL. Note that it currently does this by making RRTMGP unusable if MKL is not found. This is not ideal, but it's a first attempt.
Pinging @lizziel and @LiamBindle. I wanted to bring this to your attention. I've been building/running GEOS on an Arm64 machine at AWS and as such, I've had to make some branches to avoid an MKL dependency in GEOS (in RRTMGP). Now, you probably don't care much about that, but in order to get other bits of GEOS to build, I found that we had a semi-undocumented LAPACK dependency. Thus, this PR will do more than Also, it adds a bit of change the GNU.cmake where I can't exactly use |
Also, I'm pinging you because this set of PRs might go in soon. |
@mathomp4 Thanks for the heads up! Just to make sure I understand this correctly, this doesn't introduce MKL/LAPACK/BLAS as a new dependency in MAPL right? It's just the CMakeLists will include find_package() calls to find them since GEOS needs it? |
@LiamBindle MAPL doesn't care at all. But, technically, MKL has always been a required dependency of using ESMA_cmake (or |
@LiamBindle If need be, I could code in an option that would allow for skipping this altogether? Something like: option(USE_BLASLAPACK "disable BLAS and LAPACK detection" ON) if you really don't want any BLAS or LAPACK requirement? Or do you not even do |
@mathomp4 Sounds good, this shouldn't cause a problem on our end. We're using #57 which does something similar to disable Thanks again for the heads up! |
I wonder if the right thing to do in this regard is the following:
It does not hurt to repeat these and it will make the dependencies more correct under random configurations. We probably cannot fix this overnight - or would not want to take such a risk. But over time we should migrate these. |
@tclune I love that idea. Working towards that would help on our end since it would decouple MAPL's build from GEOS. |
Yes, indeed. And doing that would allow us to better do (Of course, things like MPI are just "required" at all levels and goes up to the top.) |
Another edit is incoming from/inspired by Dan Kokron. Technically, Now that NCEP_sp is the one requiring LAPACK, that should cause the fault in CMake, not the esma.cmake step. Testing now. |
Instead, the CMakeLists.txt in the package that requires BLAS or LAPACK should REQUIRED it.
This PR adds support for optional MKL as well as preliminary support for aarch64 (Graviton2) processors with GNU
Should be taken in concert with:
GEOS-ESM/NCEP_Shared#8GEOS-ESM/GEOSgcm_GridComp#321ETA: Turns out thanks to CMake knowledge of @tclune this is no longer true! Since each component specifies what they need, they are now independent!