The ecTrans bundle uses ecbundle to build ecTrans together
with the dependencies described in bundle.yml. The wrapper script
ectrans-bundle downloads ecbundle locally when it is not already available and
then forwards all arguments to ecbundle.
Run the bundle commands from the ecTrans source tree:
package/bundle/ectrans-bundle create [options]
package/bundle/ectrans-bundle build [options]The create command prepares the bundle build tree and dependency checkout layout. The build
command configures, builds, and installs the projects described by the bundle.
For example:
package/bundle/ectrans-bundle create --bundle package/bundle/bundle.yml --src-dir=package/bundle/source
package/bundle/ectrans-bundle build --with-etrans --arch=ecmwf/hpc2020 --src-dir=package/bundle/source --build-dir=package/bundle/buildPlatform-specific environment and toolchain files are kept under arch. On supported
systems, source the matching environment file before creating or building the bundle. For example:
source package/bundle/arch/ecmwf/hpc2020/intel/2023.2.0/hpcx-openmpi/2.9.0/env.sh
package/bundle/ectrans-bundle create --bundle package/bundle/bundle.yml --src-dir=package/bundle/source
package/bundle/ectrans-bundle build --with-mkl --with-etrans --arch=ecmwf/hpc2020/intel/2023.2.0/hpcx-openmpi/2.9.0 --src-dir=package/bundle/source --build-dir=package/bundle/buildThe architecture environment files may set compiler wrappers, module settings, CMake toolchain
files, and reproducibility-related runtime variables such as MKL_CBWR=AUTO,STRICT.
The available bundle options are defined in bundle.yml. Common options include:
--with-etransto enable the limited-area transform implementation.--with-mklto enable Intel MKL for BLAS and FFT calls.--with-fftwto enable FFTW calls.--without-mpito disable MPI.--without-ompto disable OpenMP.--with-bitid-teststo enable bit-identicality tests.--with-reference-teststo enable comparisons with stored checksum references.--reference-test-dir=<reference-dir>to use a non-default stored reference directory.--without-single-precisionor--without-double-precisionto build only one precision.--with-gpu-accor--with-gpu-ompto build GPU libraries with OpenACC or OpenMP offload.--without-gpu-mpito disable GPU-aware MPI.--with-cutlassto enable CUTLASS GEMM kernels on supported CUDA/NVHPC builds.--without-cutlass-3XTF32to disable 3XTF32 usage on compatible CUDA/NVHPC builds.--without-gpu-graphsto disable GPU graph optimisations.--with-static-linkingto build static libraries by default.--with-rocfftto use rocFFT on AMD GPU builds.
Run the wrapper with ecbundle help options, or inspect bundle.yml, for the full
set of supported options in the current source tree.
After a bundle build, go to the generated build directory and source its env.sh file before
running tests. The exact build directory name depends on the ecbundle configuration:
cd <build-dir>
source env.sh
ctest -R ectrans --output-on-failureRun CTest as described in the top-level README.md