scalapack icon indicating copy to clipboard operation
scalapack copied to clipboard

CMake: allow only one or few precisions to be built

Open scivision opened this issue 2 years ago • 0 comments

fixes #73

Building only one or a few precision(s) e.g. real32, real64, complex32, complex64 allows build time to be slashed by up to 75%, especially important for embedded systems.

Additional necessary modifications were made so that Scalapack works more robustly across compilers and operating systems, including:

  • apply -Wno-implicit* to modern C99+ default compilers such as GCC 12 and Clang
  • workaround find_package bug that made CMake have to be configured twice on some systems
  • configure more robustly when building Lapack via ExternalProject, particularly with Ninja
  • Use GNUInstallDirs to handle lib/lib64, particularly important for RHEL-like Linux OS
  • correct/simplify CI syntax
  • add CI jobs for each precision and MacOS real32 (since MacOS runners are slow and limited number of them)
  • reduce maintenance burden by using functions to deduplicate large amounts of CMake script

These updates are all based upon the https://github.com/scivision/scalapack CMake wrapper of Scalapack, which over the past 4 years has grown to an unexpectedly large user base, when that traffic should rightfully be directed toward this official project. This PR fixes critical issues in Scalapack's CMake scripts that led us to make the scivision/scalapack wrapper. This will help us redirect users to the original Scalapack project here.

scivision avatar Nov 21 '22 23:11 scivision