How to Use LAPACK++ and BLAS++

61 views
Skip to first unread message

Axel Huebl

unread,
Apr 28, 2020, 8:10:18 PM4/28/20
to slate...@icl.utk.edu, David Grote, Jean-Luc Vay
Dear SLATE developers,


We hope you are all doing well.

We started using LAPACK++ and BLAS++ for one of our numerical solvers in ECP-WarpX recently. In order to be able to mainline and keep these libs as dependency, we would like to ask a few questions so we can continue to provide a great developer- and user-experience with WarpX.

Where to interface: during development, we interfaced with the two C++ libs directly and did build them manually. Is this the recommended way to interface those (we like this) or should we pull a full-fledged SLATE library as dependency?

Versions: Is it possible that there are no tagged versions and no regular releases for LAPACK++ and BLAS++ on your repos? Do you plan to do regular releases? Searching for SLATE, there also seems to be only one tagged version yet.

Build System: do you recommend to use the CMake scripts in the repos or the manual makefiles? Are the CMake scripts ready to be used as an `add_subdirectory` as well as a `find_package` module?

Packages: we can only find a SLATE package in Spack yet, but no packages for the two sub-projects. The SLATE package does not use the CMake build scripts and we cannot find the BLAS++ functions/imports after install. If you like, and if your CMake scripts are ready for this, I can help you to update your Spack package.


Thanks already for your help,
Axel

--
Axel Huebl
Computational Physicist, Postdoc
Accelerator Technology and Applied Physics Division
Lawrence Berkeley National Laboratory
Berkeley, CA

Mark Gates

unread,
Apr 28, 2020, 10:29:07 PM4/28/20
to Axel Huebl, SLATE User, David Grote, Jean-Luc Vay
On Tue, Apr 28, 2020 at 8:10 PM Axel Huebl <axel...@lbl.gov> wrote:
Dear SLATE developers,

We hope you are all doing well.

We started using LAPACK++ and BLAS++ for one of our numerical solvers in ECP-WarpX recently. In order to be able to mainline and keep these libs as dependency, we would like to ask a few questions so we can continue to provide a great developer- and user-experience with WarpX.

Where to interface: during development, we interfaced with the two C++ libs directly and did build them manually. Is this the recommended way to interface those (we like this) or should we pull a full-fledged SLATE library as dependency?

Using BLAS++ and LAPACK++ as independent libraries, apart from SLATE, is perfectly acceptable. That's why we built them as separate repos.


Versions: Is it possible that there are no tagged versions and no regular releases for LAPACK++ and BLAS++ on your repos? Do you plan to do regular releases? Searching for SLATE, there also seems to be only one tagged version yet.

Yes, we're working on cleaning things up to tag initial releases.


Build System: do you recommend to use the CMake scripts in the repos or the manual makefiles? Are the CMake scripts ready to be used as an `add_subdirectory` as well as a `find_package` module?

Either CMake or Makefiles should work. Personally, I use Makefiles. I don't know about `add_subdirectory`, so will have to check on that.


Packages: we can only find a SLATE package in Spack yet, but no packages for the two sub-projects. The SLATE package does not use the CMake build scripts and we cannot find the BLAS++ functions/imports after install. If you like, and if your CMake scripts are ready for this, I can help you to update your Spack package.

We're revising the SLATE Spack package and adding BLAS++ and LAPACK++ Spack packages.


Thanks already for your help,
Axel

--
Axel Huebl
Computational Physicist, Postdoc
Accelerator Technology and Applied Physics Division
Lawrence Berkeley National Laboratory
Berkeley, CA

--
You received this message because you are subscribed to the Google Groups "SLATE User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to slate-user+...@icl.utk.edu.
To view this discussion on the web visit https://groups.google.com/a/icl.utk.edu/d/msgid/slate-user/CAGvet1PgP3Kvs8Y9SE9Rjm4svDrQyKyy6b3Bd2oW0ZVrWb1gHA%40mail.gmail.com.


--
Innovative Computing Laboratory
University of Tennessee, Knoxville

Axel Huebl

unread,
Apr 30, 2020, 1:54:19 AM4/30/20
to Mark Gates, SLATE User, David Grote, Jean-Luc Vay
Hi Mark,

Thanks a lot for the quick feedback.

> Using BLAS++ and LAPACK++ as independent libraries, apart from SLATE, is perfectly acceptable. That's why we built them as separate repos.

Awesome, we will then continue using the two libs directly.

> I don't know about `add_subdirectory`, so will have to check on that.

`add_subdirectory` is just a way to include a source repo directly as a sub-project, e.g. when it is fetched on the fly with CMake or included in-source. One just needs to ensure that the exposed CMake targets have the same name an namespace as the installed `find_package(...)`. E.g. of the package is `blaspp::blaspp` after install, one also adds an alias in CMakeLists.txt:
    add_library(blaspp::blaspp ALIAS blaspp)

Often useful is also an additional CMake variable that controls if `install(...)` shall be guarded: if blaspp is a private dependency, then it does not necessarily need to be installed (e.g. in static builds, but you currently set shared-only).

> We're revising the SLATE Spack package and adding BLAS++ and LAPACK++ Spack packages.

That's awesome, thanks a lot! Already reviewed Toedor's BLAS++ and LAPACK++ packages, please do not hesitate to take a look as well:

All the best and thanks again,
Axel
Reply all
Reply to author
Forward
0 new messages