Skip to content
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

ScaLAPACK dependency installation #230

Merged
merged 9 commits into from
Jul 21, 2023
Merged

ScaLAPACK dependency installation #230

merged 9 commits into from
Jul 21, 2023

Conversation

dreamer2368
Copy link
Collaborator

@dreamer2368 dreamer2368 commented Jul 16, 2023

This is in support of pylibROM installation using pip on quartz.

Current libROM compilation using mkl module in quartz has an issue, as the shared object of libROM cannot resolve the relative path of mkl, as the shared object is packed into the pip installation procedure. (For a detail, see the issue from pybind/cmake_example).

  • scripts/setup.sh is adjusted so that it can manually install a static libscalapack.a library. There are two options to specify manual installation,
  1. specify -s flag for scripts/compile.sh
  2. pass true as an argument after scripts/setup.sh
  • Required source code and input file is stored in dependencies.
  • lib/CMakeLists.txt provides HINTS to find_package(ScaLAPACK REQUIRED), pointing to dependencies/scalapack-2.2.0.

A miscellaneous addition:

  • cmake/toolchains/simple.cmake: it simply takes the path to mfem, hypre, parmetis and metis from the environment variables (which need to be pre-set).

@dreamer2368 dreamer2368 changed the title Scalapack ScaLAPACK dependency installation Jul 16, 2023
@dreamer2368 dreamer2368 marked this pull request as ready for review July 16, 2023 06:13
@dreamer2368 dreamer2368 added enhancement RFR Ready for review labels Jul 16, 2023
@chldkdtn
Copy link
Collaborator

@dreamer2368 Thank you for looking into this. Wonderful job. By the way, it seems that libROM still extract scalapack tar files in dependencies and install it even though it has been done in the past. Can you modify it so that if the scalapack is already installed, then it skips the extraction and re-installing? Perhaps, for pylibrom, we may want to make an option of forcing scalapack extraction and installation to avoid INTEL-MKL errors. What do you think?

@dreamer2368
Copy link
Collaborator Author

@dreamer2368 Thank you for looking into this. Wonderful job. By the way, it seems that libROM still extract scalapack tar files in dependencies and install it even though it has been done in the past. Can you modify it so that if the scalapack is already installed, then it skips the extraction and re-installing? Perhaps, for pylibrom, we may want to make an option of forcing scalapack extraction and installation to avoid INTEL-MKL errors. What do you think?

The scripts/setup.sh now further checks if the libscalapack.a exists in the dependencies.

Copy link
Collaborator

@michael-barrow-llnl michael-barrow-llnl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm quite happy this has been done, I did have to resolve the ScaLAPACK dependency on non-LC machines with some modifications to the CMake which use open versions. Will discuss if this (non-LC issue) does not go away and if it turns out that that the CMake modification was desirable. Approving for now.

@dreamer2368 dreamer2368 merged commit 983fb70 into master Jul 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement RFR Ready for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants