You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
option(ENABLE_SCALAPACK"Enable ScaLAPACK Bindings in TiledArray"OFF)
121
-
add_feature_info(ScaLAPACK ENABLE_SCALAPACK"ScaLAPACK provides distributed linear algebra")
120
+
option(TA_SCALAPACK"Enable ScaLAPACK Bindings in TiledArray"OFF)
121
+
add_feature_info(ScaLAPACK TA_SCALAPACK"ScaLAPACK provides distributed linear algebra")
122
122
123
-
option(ENABLE_WFN91_LINALG_DISCOVERY_KIT"Use linear algebra discovery kit from github.com/wavefunction91 [recommended]"ON)
124
-
add_feature_info(WFN91LinearAlgebraDiscoveryKit ENABLE_WFN91_LINALG_DISCOVERY_KIT"Linear algebra discovery kit from github.com/wavefunction91 supports many more corner cases than the default CMake modules and/or ICL's BLAS++/LAPACK++ modules")
123
+
option(TA_LINALG_DISCOVERY_KIT"Use linear algebra discovery kit from github.com/wavefunction91 [recommended]"ON)
124
+
add_feature_info(WFN91LinearAlgebraDiscoveryKit TA_LINALG_DISCOVERY_KIT"Linear algebra discovery kit from github.com/wavefunction91 supports many more corner cases than the default CMake modules and/or ICL's BLAS++/LAPACK++ modules")
125
125
126
-
redefaultable_option(ENABLE_TBB "Enable use of TBB with MADNESS"OFF)
Copy file name to clipboardExpand all lines: INSTALL.md
+8-10
Original file line number
Diff line number
Diff line change
@@ -200,8 +200,8 @@ ASLR is a standard technique for increasing platform security implemented by the
200
200
*`CMAKE_POSITION_INDEPENDENT_CODE` -- This standard CMake variable controls whether targets are compiled by default as position-independent code or not. If `BUILD_SHARED_LIBS=OFF` need to set this to `ON` if want to use the TiledArray libraries to build shared libraries or position-independent executables.
201
201
202
202
To make things more concrete, consider the following 2 scenarios:
203
-
* Platform with ASLR disabled -- set `TA_ASSUMES_ASLR_DISABLED=ON` to set the defaults correctly and enable the ASLR check. `BUILD_SHARED_LIBS` can be set to `ON` (to produce shared TA/MADworld libraries, e.g., to minimize the executable size) or to `OFF` to produce static libraries. If the TA+MADworld static libraries will be linked into shared libraries set `CMAKE_POSITION_INDEPENDENT_CODE=ON`, otherwise `CMAKE_POSITION_INDEPENDENT_CODE` will be set to OFF for maximum efficiency of function calls.
204
-
* Platform with ASLR enabled -- this is the default. Setting `BUILD_SHARED_LIBS=ON` in this scenario will produce executables that can only be safely used with 1 MPI rank, thus `BUILD_SHARED_LIBS` will be defaulted to OFF (i.e. TA+MADworld libraries will be built as static libraries). `CMAKE_POSITION_INDEPENDENT_CODE` is by default set to `ON`, thus TA+MADworld libraries can be linked into position-independent executables safely. TA+MADworld libraries can also be linked into a shared library, provided that *ALL* code using TA+MADworld is part of the *SAME* shared library. E.g. to link TA+MADworld into a Python module compile TA+MADworld libraries and their dependents as static libraries (with `CMAKE_POSITION_INDEPENDENT_CODE=ON`) and link them all together into a single module (same logic applies to shared libraries using TA+MADworld).
203
+
* Platform with ASLR disabled -- set `TA_ASSUMES_ASLR_DISABLED=ON` to set the defaults correctly and enable the ASLR check. `BUILD_SHARED_LIBS` can be set to `ON` (to produce shared TA/MADworld libraries, e.g., to minimize the executable size) or to `OFF` to produce static libraries. If the TA+MADworld static libraries will be linked into shared libraries set `CMAKE_POSITION_INDEPENDENT_CODE=ON`, otherwise `CMAKE_POSITION_INDEPENDENT_CODE` will be set to `OFF` for maximum efficiency of function calls.
204
+
* Platform with ASLR enabled -- this is the default. Setting `BUILD_SHARED_LIBS=ON` in this scenario will produce executables that can only be safely used with 1 MPI rank, thus `BUILD_SHARED_LIBS` will be defaulted to `OFF` (i.e. TA+MADworld libraries will be built as static libraries). `CMAKE_POSITION_INDEPENDENT_CODE` is by default set to `ON`, thus TA+MADworld libraries can be linked into position-independent executables safely. TA+MADworld libraries can also be linked into a shared library, provided that *ALL* code using TA+MADworld is part of the *SAME* shared library. E.g. to link TA+MADworld into a Python module compile TA+MADworld libraries and their dependents as static libraries (with `CMAKE_POSITION_INDEPENDENT_CODE=ON`) and link them all together into a single module (same logic applies to shared libraries using TA+MADworld).
205
205
206
206
## MPI
207
207
@@ -212,7 +212,7 @@ following CMake cache variables:
212
212
* MPI_C_COMPILER -- The MPI C compiler wrapper
213
213
* MPI_CXX_COMPILER -- The MPI C++ compiler wrapper
214
214
215
-
You can build TiledArray without MPI support by setting ENABLE_MPI to OFF.
215
+
You can build TiledArray without MPI support by setting `ENABLE_MPI` to `OFF`.
216
216
Though we strongly recommend compiling with MPI even if you do not intend
217
217
to use TiledArray in a distributed memory environment. Note, if you
218
218
build MADNESS yourself, you must also configure MADNESS with `ENABLE_MPI=OFF`
@@ -236,7 +236,7 @@ as needed.
236
236
As of version 1.0 TiledArray also provides a direct (non-iterative) linear solvers API
237
237
implemented using LAPACK and (optionally) ScaLAPACK. Therefore LAPACK is now a mandatory
238
238
prerequisite of TiledArray. The use of ScaLAPACK can be enabled by setting CMake cache
239
-
variable `ENABLE_SCALAPACK` to `ON`.
239
+
variable `TA_SCALAPACK` to `ON`.
240
240
241
241
Robust discovery of linear algebra libraries, and _especially_ their distributed-memory
242
242
variants, is a complex process. Unfortunately even for serial/shared-memory linear
@@ -245,7 +245,7 @@ algebra libraries only basic scenarios are supported by the standard CMake modul
*N.B.* These differ from the recognized values of the `BLA_VENDOR` variable used by the [BLAS+LAPACK CMake modules](https://cmake.org/cmake/help/latest/module/FindBLAS.html).
273
-
- If the use of the NWChemEx kit is disabled by setting CMake cache variable `ENABLE_WFN91_LINALG_DISCOVERY_KIT` to `OFF`
273
+
- If the use of the NWChemEx kit is disabled by setting CMake cache variable `TA_LINALG_DISCOVERY_KIT` to `OFF`
274
274
BLAS/LAPACK are imported transitively via the BLAS++/LAPACK++ libraries (which are themselves
275
275
imported transitively via the BTAS library). Under the most common scenario, where TiledArray
276
276
will configure and compile BTAS dependency and its BLAS++/LAPACK++ prerequisites from source
@@ -329,9 +329,9 @@ Also note that even if OpenMP or TBB backends are used, TiledArray will be defau
329
329
330
330
Support for execution on NVIDIA and AMD GPGPUs is controlled by the following variables:
331
331
332
-
*`ENABLE_CUDA` -- Set to `ON` to turn on CUDA support. [Default=OFF].
332
+
*`TA_CUDA` -- Set to `ON` to turn on CUDA support. [Default=OFF].
333
333
*`CMAKE_CUDA_HOST_COMPILER` -- Set to the path to the host C++ compiler to be used by CUDA compiler. CUDA compilers used to be notorious for only being able to use specific C++ host compilers, but support for more recent C++ host compilers has improved. The default is determined by the CUDA compiler and the user environment variables (`PATH` etc.).
334
-
*`ENABLE_HIP` -- Set to `ON` to turn on HIP/ROCm support. [Default=OFF].
334
+
*`TA_HIP` -- Set to `ON` to turn on HIP/ROCm support. [Default=OFF].
335
335
*`LIBRETT_INSTALL_DIR` -- the installation prefix of the pre-installed LibreTT library. This should not be normally needed; it is strongly recommended to let TiledArray build and install LibreTT.
336
336
*`UMPIRE_INSTALL_DIR` -- the installation prefix of the pre-installed Umpire library. This should not be normally needed; it is strongly recommended to let TiledArray build and install Umpire.
337
337
@@ -367,12 +367,10 @@ the correct revision of MADNESS.
367
367
The following CMake options may be used to modify build behavior or find MADNESS:
368
368
369
369
*`ENABLE_MPI` -- Enable MPI [Default=ON]
370
-
*`ENABLE_SCALAPACK` -- Enable the use of ScaLAPACK bindings [Default=OFF]
371
370
*`ENABLE_TBB` -- Enable the use of TBB when building MADNESS [Default=ON]
372
371
*`ENABLE_GPERFTOOLS` -- Enable the use of gperftools when building MADNESS [Default=OFF]
373
372
*`ENABLE_TCMALLOC_MINIMAL` -- Enable the use of gperftool's tcmalloc_minimal library only (the rest of gperftools is skipped) when building MADNESS [Default=OFF]
374
373
*`ENABLE_LIBUNWIND` -- Force the discovery of libunwind library when building MADNESS [Default=OFF]
375
-
*`ENABLE_WFN91_LINALG_DISCOVERY_KIT` -- Enable the use of NWChemEx's linear algebra discovery [Default=ON]
376
374
*`MADNESS_SOURCE_DIR` -- Path to the MADNESS source directory
377
375
*`MADNESS_BINARY_DIR` -- Path to the MADNESS build directory
378
376
*`MADNESS_URL` -- Path to the MADNESS repository [Default=MADNESS git repository]
0 commit comments