-
Notifications
You must be signed in to change notification settings - Fork 8
Spack variant review
Initial review on: August 18th 2020
This looks at common variants used in xSDK in order to determine naming conventions.
xSDK includes 24 packages: 22 libraries and 2 applications. Below are the package directory names in Spack.
Libs: butterflypack dealii hypre mfem petsc phist precice py-libensemble strumpack superlu trilinos amrex datatransferkit ginkgo magma omega-h plasma pumi slepc sundials tasmanian
Applications: alquimia pflotran
Where an analysis is given of default value for variants it is based on the variant declaration line.
Note: Due to the nature of searching for alternative option names, I cannot be sure this is comprehensive. However, significant effort was made to search for alternatives option names. Feel free to update.
Spack packages analyzed at commit: acfa2ea0188129fd1e683fe8e146256b1a695d5c Date: Wed Aug 5 09:19:22 2020 -0700
gotype: 1 package in xsdk. Total of 1 package in spack.
- trilinos (Values are 'int', 'long', 'long_long'). Default is long.
int64: 6 packages in xsdk (All default to False except phist). Total of 19 packages in Spack.
- dealii
- hypre
- petsc
- phist
- pumi
- sundials
int32: None in xsdk. Total of 1 package in Spack.
mixedint: 1 package in xsdk. Total of 1 package in Spack.
- hypre
Possibly related variants in Spack packages - NOT used in any xsdk package.
- ilp64 in 5 packages. - e.g. openblas/: variant('ilp64', default=False, description='Force 64-bit Fortran native integers')
- global in one package - talass: variant('global', default='32', values=('16', '32', '64'),
- local in one package - talass: variant('local', default='32', values=('16', '32', '64')
- int64_blas in two packages
- blas64 in one package.
- 64bit in one package.
- only64bit in one package.
- 64bitids in one package.
double:1 match in xsdk. 5 packages in Spack - all but one (kaldi) default True.
- petsc
float: 1 match in xsdk . 3 packages in spack (trilinos, grackle, mumps)
- trilinos. 'Enable single precision (float) numbers in Trilinos' default=False
single: None in xsdk. 2 packages in Spack (both default to False)
precision: 2 packages in xsdk. Total of 5 packages in Spack (all diff value options).
- amrex - multi-value: values=('single', 'double')) Default='double'
- sundials - multi-value: values=('single', 'double', 'extended') Default='double'
Other Spack packages with options:
- comd - boolean option - default=True
- sw4lite - multi-value: values=('float', 'double') Default='double'
- talass - multi-value: values=('32', '64') Default='32'
Possibly related variants in Spack packages - NOT used in any xsdk package.
- float32: Four packages (3 'foam' packages) - default False in all
- double_precision: One package in spack (gromacs) - default False
- double-precision: One package in spack (openfast) - default True
- doubleprecision: One packages in spack (vtk-m) - default True
- single_precision: One package in spack (spfft) - default False
- singleprecision: One package in spack (regcm) - default False
- real64: One package in spack (metis) - default False
- quad: Three packages in Spack. All default False. E.g. 'Enable quad precision'
- half: Two packages in Spack. Both supporting FP16 precision.
shared: 16 xsdk packages (default: 11=True, 4=False, 1=(sys.platform != 'darwin')). A total of 152 Spack packages.
- alquimia
- amrex
- butterflypack
- datatransferkit
- ginkgo
- hypre
- magma
- mfem
- omega-h
- petsc
- phist
- precice
- pumi
- strumpack
- sundials
- trilinos
static: 2 xsdk packages. Default is True in both. A total of 20 packages in Spack
- mfem (also has shared with default False)
- sundials (also has shared with default True - so builds both static and shared).
pic: 1 xsdk package. A total of 36 Spack packages (30 default to True, 6 False)
- superlu default=True (presume shared is default) results in -DCMAKE_POSITION_INDEPENDENT_CODE=ON
Possibly related variants in Spack packages - NOT used in any xsdk package.
- link_type: In 1 spack package- multi-value: values=('static', 'shared'), multi=True - default='shared'
- piclibs: In 1 spack package
- link_dylib: In 1 spack package (sollve)- "Build and link the libLLVM shared library rather than static"
- lld: : In 1 spack packagee (sollve) "Build the LLVM linker"
debug: 4 xsdk packages. A total of 43 packages in Spack. Default False on all
- hypre
- mfem
- petsc
- trilinos
symbols: (I guess adds debugging symbols without disabling optimization) 1 xsdk package. A total of 2 packages in spack (other is coind3d - default:False)
- omega-h. default=True, description='Compile C++ with debug symbols'
build_type (multi-value type). 4 xsdk packages. A total of 60 packages in Spack (with various value options). xsdk packages:
- amrex values=('Debug', 'Release')) default='Release'
- ginkgo values=('Debug', 'Release')) default='Release'
- tasmanian values=('Debug', 'Release')) default='Release'
- dealii values=('Debug', 'Release', 'DebugRelease')) default='DebugRelease'
Other Spack non-xSDK packages options (values) for build_type
- RelWithDebInfo
- RelWithDebug
- FastDebug
- DebugRelease
- MinSizeRel
- CodeCoverage
- Production
- Coverage