Module | Source File | Description |
---|---|---|
dbcsr_acc_device | dbcsr_acc_device.F | |
dbcsr_acc_devmem | dbcsr_acc_devmem.F | Accelerator support |
dbcsr_acc_event | dbcsr_acc_event.F | Accelerator support |
dbcsr_acc_hostmem | dbcsr_acc_hostmem.F | Accelerator support |
dbcsr_acc_init | dbcsr_acc_init.F | Accelerator support |
dbcsr_acc_operations | dbcsr_acc_operations.F | Accelerator support for DBCSR |
dbcsr_acc_stream | dbcsr_acc_stream.F | Accelerator support |
dbcsr_acc_timings | dbcsr_acc_timings.F | Accelerator support |
dbcsr_allocate_wrap | dbcsr_allocate_wrap.F | Wrapper for allocating, copying and reshaping arrays. |
dbcsr_api | dbcsr_api.F | This is the start of a dbcsr_api, all publicly needed functions are exported here. The others remain private to the library. Currently, this is the CP2K used set. Ultimately, a reduced subset and well defined api will remain, possibly grouped in to standard and expert api. Currently, this is work in progress. |
dbcsr_api_c | dbcsr_api_c.F | PUBLIC :: dbcsr_get_info PUBLIC :: dbcsr_distribution_get PUBLIC :: dbcsr_setname PUBLIC :: dbcsr_get_matrix_type PUBLIC :: dbcsr_get_occupation PUBLIC :: dbcsr_nblkrows_total PUBLIC :: dbcsr_nblkcols_total |
dbcsr_array_list_methods | dbcsr_array_list_methods.F | Representation of arbitrary number of 1d integer arrays with arbitrary sizes. This is needed for generic handling of dimension-specific tensor quantities (such as block index). |
dbcsr_array_sort | dbcsr_array_sort.F | Routine for sorting an array |
dbcsr_array_types | dbcsr_array_types.F | Array objects with reference counting. |
dbcsr_base_hooks | dbcsr_base_hooks.F | Central dispatch for basic hooks |
dbcsr_blas_operations | dbcsr_blas_operations.F | Wrappers to BLAS calls. |
dbcsr_block_access | dbcsr_block_access.F | DBCSR block access |
dbcsr_block_operations | dbcsr_block_operations.F | Routines for basic block transformations. |
dbcsr_btree | dbcsr_btree.F | B-tree |
dbcsr_config | dbcsr_config.F | Configuration options for DBCSR |
dbcsr_csr_conversions | dbcsr_csr_conversions.F | DBCSR to CSR matrix format conversion |
dbcsr_cuda_profiling | dbcsr_cuda_profiling.F | routines for profiling cuda |
dbcsr_data_methods | dbcsr_data_methods.F | DBCSR data methods |
dbcsr_data_methods_low | dbcsr_data_methods_low.F | DBCSR data methods |
dbcsr_data_operations | dbcsr_data_operations.F | DBCSR data operations |
dbcsr_data_types | dbcsr_data_types.F | Types related to DBCSR data area |
dbcsr_dict | dbcsr_dict.F | A dictionary (also known as hashtable or hashmap). Internally the dictionary uses an array to holds its data. If this array reaches a load-factor of 75%, a new array with twice the size will be allocated and the items are then copied over. This ensures that the dictionary will perform operations in O(1). |
dbcsr_dist_methods | dbcsr_dist_methods.F | Routines related to DBCSR distributions |
dbcsr_dist_operations | dbcsr_dist_operations.F | DBCSR operations on distributions |
dbcsr_dist_util | dbcsr_dist_util.F | DBCSR sparse matrix utility routines |
dbcsr_error_handling | dbcsr_error_handling.F | Module that contains the routines for error handling |
dbcsr_files | dbcsr_files.F | Utility routines to open and close files. |
dbcsr_hip_profiling | dbcsr_hip_profiling.F | |
dbcsr_index_operations | dbcsr_index_operations.F | Operations on the DBCSR index |
dbcsr_io | dbcsr_io.F | DBCSR input/output |
dbcsr_iter_types | dbcsr_iter_types.F | Collection of routines to handle the iteration info |
dbcsr_iterator_operations | dbcsr_iterator_operations.F | DBCSR iterator operations |
dbcsr_kinds | dbcsr_kinds.F | Defines the basic variable types |
dbcsr_lib | dbcsr_lib.F | Routines that affect the DBCSR library as a whole |
dbcsr_list | dbcsr_list.F | An array-based list which grows on demand. When the internal array is full, a new array of twice the size will be allocated and the items are copied over. This list can also be used as a stack. Have look at list_push(), list_pop() and list_peek(). |
dbcsr_list_callstackentry | dbcsr_list_callstackentry.F | |
dbcsr_list_routinereport | dbcsr_list_routinereport.F | |
dbcsr_list_routinestat | dbcsr_list_routinestat.F | |
dbcsr_list_timerenv | dbcsr_list_timerenv.F | |
dbcsr_log_handling | dbcsr_log_handling.F | various routines to log and control the output. The idea is that decisions about where to log should not be done in the code that generates the log, but should be globally changeable a central place. So some care has been taken to have enough information about the place from where the log comes so that in the future intelligent and flexible decisions can be taken by the logger, without having to change other code. |
dbcsr_machine | dbcsr_machine.F | |
dbcsr_machine_internal | dbcsr_machine_internal.F | Implementation of machine interface based on Fortran 2003 and POSIX |
dbcsr_mem_methods | dbcsr_mem_methods.F | DBCSR Memory Pool to avoid slow allocations of accelerator memory |
dbcsr_methods | dbcsr_methods.F | Base methods on DBCSR data structures |
dbcsr_min_heap | dbcsr_min_heap.F | |
dbcsr_mm | dbcsr_mm.F | Entry point of the dbcsr matrix-matrix multiplication. Modification history: - 2016-08 Code organization (Alfio Lazzaro). |
dbcsr_mm_3d | dbcsr_mm_3d.F | 3D matrix-matrix multiplication. Modification history: - 2016-08 Code organization (Alfio Lazzaro). - 2017-02 Remove clusters (Alfio Lazzaro). |
dbcsr_mm_accdrv | dbcsr_mm_accdrv.F | Fourth layer of the dbcsr matrix-matrix multiplication. It hides the differences between performing calculations on the accelerator device or on the CPU. Modification history: - 2010-02-23 Moved from dbcsr_operations - 2011-11 Moved parameter-stack processing routines to dbcsr_mm_methods. - 2013-01 extensive refactoring (Ole Schuett) - 2014-04 generalized into acc-framework (Ole Schuett) |
dbcsr_mm_cannon | dbcsr_mm_cannon.F | First layer of the dbcsr matrix-matrix multiplication. It performs the MPI parallelization according to Cannon's algorithm. Modification history: - 2010-02-23 Moved from dbcsr_operations - 2011-11 Moved parameter-stack processing routines to dbcsr_mm_methods. - 2013-01 reorganized code (Ole Schuett) |
dbcsr_mm_common | dbcsr_mm_common.F | Common variables and routines for the dbcsr matrix-matrix multiplication algorithms. Modification history: - 2016-08 Code organization (Alfio Lazzaro). |
dbcsr_mm_csr | dbcsr_mm_csr.F | Third layer of the dbcsr matrix-matrix multiplication. It collects the full matrix blocks, which need to be multiplied, and stores their parameters in various stacks. After a certain amount of parameters is collected it dispatches the filled stacks to either the CPU or the accelerator device. Modification history: - 2010-02-23 Moved from dbcsr_operations - 2011-11 Moved parameter-stack processing routines to dbcsr_mm_methods. - 2013-01 extensive refactoring (Ole Schuett) |
dbcsr_mm_dist_operations | dbcsr_mm_dist_operations.F | DBCSR operations on distributions related to matrix multiplication |
dbcsr_mm_hostdrv | dbcsr_mm_hostdrv.F | Stacks of small matrix multiplications |
dbcsr_mm_multrec | dbcsr_mm_multrec.F | Second layer of the dbcsr matrix-matrix multiplication. It divides the multiplication in a cache-oblivious manner. Modification history: - 2010-02-23 Moved from dbcsr_operations - 2011-11 Moved parameter-stack processing routines to dbcsr_mm_methods. - 2013-01 extensive refactoring (Ole Schuett) |
dbcsr_mm_sched | dbcsr_mm_sched.F | Fourth layer of the dbcsr matrix-matrix multiplication. It hides the differences between performing calculations on the accelerator device or on the CPU. Modification history: - 2010-02-23 Moved from dbcsr_operations - 2011-11 Moved parameter-stack processing routines to dbcsr_mm_methods. - 2013-01 extensive refactoring (Ole Schuett) |
dbcsr_mm_types | dbcsr_mm_types.F | Datatypes used by the dbcsr matrix-matrix multiplication machinery. Modification history: - 2013-01 reorganized code (Ole Schuett) |
dbcsr_mp_methods | dbcsr_mp_methods.F | |
dbcsr_mp_operations | dbcsr_mp_operations.F | Wrappers to message passing calls. |
dbcsr_mpiwrap | dbcsr_mpiwrap.F | Interface to the message passing library MPI |
dbcsr_multiply_api | dbcsr_multiply_api.F | |
dbcsr_operations | dbcsr_operations.F | Higher-level operations on DBCSR matrices. |
dbcsr_print_messages | dbcsr_print_messages.F | Perform an abnormal program termination. |
dbcsr_ptr_util | dbcsr_ptr_util.F | DBCSR pointer and unmanaged array utilities |
dbcsr_string_utilities | dbcsr_string_utilities.F | Utilities for string manipulations |
dbcsr_tas_base | dbcsr_tas_base.F | Tall-and-skinny matrices: base routines similar to DBCSR API, mostly wrappers around existing DBCSR routines. |
dbcsr_tas_global | dbcsr_tas_global.F | Global data (distribution and block sizes) for tall-and-skinny matrices For very sparse matrices with one very large dimension, storing array data of the same size as the matrix dimensions may require too much memory and we need to compute them on the fly for a given row or column. Hence global array data such as distribution and block sizes are specified as function objects, leaving up to the caller how to efficiently store global data. |
dbcsr_tas_io | dbcsr_tas_io.F | tall-and-skinny matrices: Input / Output |
dbcsr_tas_mm | dbcsr_tas_mm.F | Matrix multiplication for tall-and-skinny matrices. This uses the k-split (non-recursive) CARMA algorithm that is communication-optimal as long as the two smaller dimensions have the same size. Submatrices are obtained by splitting a dimension of the process grid. Multiplication of submatrices uses DBCSR Cannon algorithm. Due to unknown sparsity pattern of result matrix, parameters (group sizes and process grid dimensions) can not be derived from matrix dimensions and need to be set manually. |
dbcsr_tas_reshape_ops | dbcsr_tas_reshape_ops.F | communication routines to reshape / replicate / merge tall-and-skinny matrices. |
dbcsr_tas_split | dbcsr_tas_split.F | methods to split tall-and-skinny matrices along longest dimension. Basically, we are splitting process grid and each subgrid holds its own DBCSR matrix. |
dbcsr_tas_test | dbcsr_tas_test.F | testing infrastructure for tall-and-skinny matrices |
dbcsr_tas_types | dbcsr_tas_types.F | DBCSR tall-and-skinny base types. Mostly wrappers around existing DBCSR routines. |
dbcsr_tas_util | dbcsr_tas_util.F | often used utilities for tall-and-skinny matrices |
dbcsr_tensor | dbcsr_tensor.F | DBCSR tensor framework for block-sparse tensor contraction. Representation of n-rank tensors as DBCSR tall-and-skinny matrices. Support for arbitrary redistribution between different representations. Support for arbitrary tensor contractions \todo implement checks and error messages |
dbcsr_tensor_api | dbcsr_tensor_api.F | This is the start of a dbcsr_tensor_api, all publically needed functions are exported here. The others remain private to the library. Currently, this is the CP2K used set. Ultimately, a reduced subset and well defined api will remain, possibly grouped in to standard and expert api. Currently, this is work in progress. |
dbcsr_tensor_api_c | dbcsr_tensor_api_c.F | |
dbcsr_tensor_block | dbcsr_tensor_block.F | Methods to operate on n-dimensional tensor blocks. |
dbcsr_tensor_index | dbcsr_tensor_index.F | tensor index and mapping to DBCSR index |
dbcsr_tensor_io | dbcsr_tensor_io.F | DBCSR tensor Input / Output |
dbcsr_tensor_reshape | dbcsr_tensor_reshape.F | Routines to reshape / redistribute tensors |
dbcsr_tensor_split | dbcsr_tensor_split.F | Routines to split blocks and to convert between tensors with different block sizes. |
dbcsr_tensor_test | dbcsr_tensor_test.F | General methods for testing DBCSR tensors. |
dbcsr_tensor_types | dbcsr_tensor_types.F | DBCSR tensor framework for block-sparse tensor contraction: Types and create/destroy routines. |
dbcsr_test_methods | dbcsr_test_methods.F | Tests for CP2K DBCSR operations |
dbcsr_test_scale_by_vector | dbcsr_test_scale_by_vector.F | Tests for DBCSR scale_by_vector |
dbcsr_tests | dbcsr_tests.F | Tests for CP2K DBCSR operations |
dbcsr_timings | dbcsr_timings.F | Timing routines for accounting |
dbcsr_timings_base_type | dbcsr_timings_base_type.F | Types used by timings.F and timings_report.F The types in this module are used within dict or list, which are in turn used in timer_env_type from timings_type.F Due to the fortran restriction on circular module-dependencies these "inner-types" had to go into a separate module. |
dbcsr_timings_report | dbcsr_timings_report.F | Timing routines for accounting |
dbcsr_timings_types | dbcsr_timings_types.F | Types used by timings.F and timings_report.F Due to the fortran restriction on circular module-dependencies the types, which are used through dict or list had to go into the separate module timings_base_type.F |
dbcsr_toollib | dbcsr_toollib.F | Tools usually found in a standard library. |
dbcsr_transformations | dbcsr_transformations.F | DBCSR transformations |
dbcsr_types | dbcsr_types.F | DBCSR data types |
dbcsr_work_operations | dbcsr_work_operations.F | DBCSR work matrix utilities |