Documentation for module dbcsr_mm_dist_operations

DBCSR operations on distributions related to matrix multiplication

source: dbcsr_mm_dist_operations.F
Loading...

public Subroutines/Functions:

Creates an image distribution given the other compatibility images
Determines mapping from local to global virtual process columnss
Determines mapping from local to global virtual process rows
Prepares distributions for making dense matrices.
Resets local rows, columns to the correct arrays and values.
Resets local rows, columns to the correct arrays and values for images.
Transform between virtual process rows/columns and actual process rows/columns and images therein.
Matches row/block sizes and offsets to a given distribution

SUBROUTINEdbcsr_create_image_dist(imgdist, dist, match_row_pdist, match_row_idist, match_row_nbins, match_col_pdist, match_col_idist, match_col_nbins, nimages_rows, nimages_cols)

Creates an image distribution given the other compatibility images

Arguments:
INTENT(out)
:: imgdist distribution repetition
INTENT(in)
:: dist distribution for which to form the image distribution
INTEGER,
INTENT(in),
OPTIONAL
:: match_row_pdist(:) match the new row distribution to this row distribution
INTEGER,
INTENT(in),
OPTIONAL
:: match_row_idist(:) match the row distribution to these row images
INTEGER,
INTENT(in)
:: match_row_nbins number of bins in the distribution to match the local rows
INTEGER,
INTENT(in),
OPTIONAL
:: match_col_pdist(:) match the new column distribution to this column distribution
INTEGER,
INTENT(in),
OPTIONAL
:: match_col_idist(:) match the new column distribution to these column images
INTEGER,
INTENT(in)
:: match_col_nbins number of bins in the distribution to match the local columns
INTEGER,
INTENT(in)
:: nimages_rows ...
INTEGER,
INTENT(in)
:: nimages_cols ...

SUBROUTINEdbcsr_get_local_vcols(imgdist, local_vcols, local_vpcol)

Determines mapping from local to global virtual process columnss

Arguments:
INTENT(inout)
:: imgdist image distribution
INTENT(out)
:: local_vcols local columnss
INTEGER,
INTENT(in)
:: local_vpcol the local virtual process column

SUBROUTINEdbcsr_get_local_vrows(imgdist, local_vrows, local_vprow)

Determines mapping from local to global virtual process rows

Arguments:
INTENT(inout)
:: imgdist image distribution
INTENT(out)
:: local_vrows local rows
INTEGER,
INTENT(in)
:: local_vprow the local virtual process row

SUBROUTINEdbcsr_make_dists_dense(product_dist, left_rdist, right_rdist, dense_product_dist, dense_left_rdist, dense_right_rdist, partial, m_map, k_vmap, n_map, old_m_sizes)

Prepares distributions for making dense matrices.

Arguments:
INTENT(in)
:: product_dist ...
INTENT(in)
:: left_rdist ...
INTENT(in)
:: right_rdist ...
INTENT(out)
:: dense_product_dist ...
INTENT(out)
:: dense_left_rdist ...
INTENT(out)
:: dense_right_rdist ...
LOGICAL,
INTENT(in)
:: partial ...
INTENT(out)
:: m_map ...
INTENT(out)
:: k_vmap ...
INTENT(out)
:: n_map ...
INTENT(in)
:: old_m_sizes ...

SUBROUTINEdbcsr_reset_locals(matrix)

Resets local rows, columns to the correct arrays and values.

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...

SUBROUTINEdbcsr_reset_vlocals(matrix, imgdist, do_rows)

Resets local rows, columns to the correct arrays and values for images.

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
INTENT(inout)
:: imgdist ...
LOGICAL,
INTENT(in),
OPTIONAL
:: do_rows ...

SUBROUTINEimage_calculator(image_dist, prow, rowi, pcol, coli, vprow, vpcol, myprow, mypcol, myrowi, mycoli, myvprow, myvpcol, vprow_shift, vpcol_shift, shifting)

Transform between virtual process rows/columns and actual process rows/columns and images therein.

Arguments:
INTENT(in)
:: image_dist ...
INTEGER,
INTENT(out),
OPTIONAL
:: prow ...
INTEGER,
INTENT(out),
OPTIONAL
:: rowi ...
INTEGER,
INTENT(out),
OPTIONAL
:: pcol ...
INTEGER,
INTENT(out),
OPTIONAL
:: coli ...
INTEGER,
INTENT(out),
OPTIONAL
:: vprow ...
INTEGER,
INTENT(out),
OPTIONAL
:: vpcol ...
INTEGER,
INTENT(in),
OPTIONAL
:: myprow ...
INTEGER,
INTENT(in),
OPTIONAL
:: mypcol ...
INTEGER,
INTENT(in),
OPTIONAL
:: myrowi ...
INTEGER,
INTENT(in),
OPTIONAL
:: mycoli ...
INTEGER,
INTENT(in),
OPTIONAL
:: myvprow ...
INTEGER,
INTENT(in),
OPTIONAL
:: myvpcol ...
INTEGER,
INTENT(in),
OPTIONAL
:: vprow_shift ...
INTEGER,
INTENT(in),
OPTIONAL
:: vpcol_shift ...
CHARACTER,
INTENT(in),
OPTIONAL
:: shifting ...

SUBROUTINEmake_sizes_dense(old_sizes, mapping, nel_new, new_sizes)

Matches row/block sizes and offsets to a given distribution

Arguments:
INTENT(in)
:: old_sizes ...
INTENT(in)
:: mapping ...
INTEGER,
INTENT(in)
:: nel_new ...
INTENT(out)
:: new_sizes ...