DBCSR

References: Borstnik2014, Schuett2016

Configuration options for the DBCSR library. [Edit on GitHub]

Subsections

Keywords

Keyword descriptions

AVG_ELEMENTS_IMAGES

Type: integer
Default: 0
Usage: avg_elements_images 10000

Description: Average number of elements (dense limit) for each image, which also corresponds to the average number of elements exchanged between MPI processes during the operations. A negative or zero value means unlimited.

[Edit on GitHub]

COMM_THREAD_LOAD

Type: integer
Default: -1
Usage: comm_thread_load 50

Description: If a communications thread is used, specify how much multiplication workload (%) the thread should perform in addition to communication tasks. A negative value leaves the decision up to DBCSR.

[Edit on GitHub]

MAX_ELEMENTS_PER_BLOCK

Type: integer
Default: 32
Usage: MAX_ELEMENTS_PER_BLOCK 32

Description: Default block size for turning dense matrices in blocked ones

[Edit on GitHub]

MM_DRIVER

Type: enum
Default: AUTO
Usage: mm_driver blas

Description: Select which backend to use preferably for matrix block multiplications on the host.

Valid values:

  • AUTO Choose automatically the best available driver

  • BLAS BLAS (requires the BLAS library at link time)

  • MATMUL Fortran MATMUL

  • SMM Library optimised for Small Matrix Multiplies (requires the SMM library at link time)

  • XSMM LIBXSMM

References: Heinecke2016

[Edit on GitHub]

MM_STACK_SIZE

Type: integer
Default: -1
Usage: mm_stack_size 1000

Description: Size of multiplication parameter stack. A negative value leaves the decision up to DBCSR.

[Edit on GitHub]

MULTREC_LIMIT

Type: integer
Default: 512

Description: Recursion limit of cache oblivious multrec algorithm.

[Edit on GitHub]

NUM_LAYERS_3D

Type: integer
Default: 1
Usage: num_layers_3D 1

Description: Number of layers for the 3D multplication algorithm.

[Edit on GitHub]

NUM_MULT_IMAGES

Type: integer
Default: 1
Usage: num_mult_images 2

Description: Multiplicative factor for number of virtual images.

[Edit on GitHub]

N_SIZE_MNK_STACKS

Type: integer
Default: 3
Usage: n_size_mnk_stacks 2

Description: Number of stacks to use for distinct atomic sizes (e.g., 2 for a system of mostly waters).

[Edit on GitHub]

USE_COMM_THREAD

Type: logical
Default: T
Usage: use_comm_thread T

Description: During multiplication, use a thread to periodically poll MPI to progress outstanding message completions. This is beneficial on systems without a DMA-capable network adapter e.g. Cray XE6.

[Edit on GitHub]

USE_MEMPOOLS_CPU

Type: logical
Default: F

Description: Enable memory pools on the CPU.

[Edit on GitHub]

USE_MPI_ALLOCATOR

Type: logical
Default: F
Usage: use_mpi_allocator T

Description: Use MPI allocator to allocate buffers used in MPI communications.

[Edit on GitHub]

USE_MPI_RMA

Type: logical
Default: F
Usage: use_mpi_rma F

Description: Use RMA for MPI communications for each image, which also corresponds to the number of elements exchanged between MPI processes during the operations.

[Edit on GitHub]