StarNEig Library
version v0.1.0
A task-based library for solving nonsymmetric eigenvalue problems
|
This file contains data types and functions for distributed matrices. More...
Go to the source code of this file.
Data Structures | |
struct | starneig_distr_block |
Distributed block. More... | |
Functions | |
void | starneig_broadcast (int root, size_t size, void *buffer) |
Query functions | |
void | starneig_distr_matrix_get_blocks (starneig_distr_matrix_t matrix, struct starneig_distr_block **blocks, int *num_blocks) |
Returns the locally owned distributed blocks. More... | |
starneig_distr_t | starneig_distr_matrix_get_distr (starneig_distr_matrix_t matrix) |
Returns the distribution that is associated with a distributed matrix. More... | |
starneig_datatype_t | starneig_distr_matrix_get_datatype (starneig_distr_matrix_t matrix) |
Returns the matrix element data type. More... | |
size_t | starneig_distr_matrix_get_elemsize (starneig_distr_matrix_t matrix) |
Returns the matrix element size. More... | |
int | starneig_distr_matrix_get_rows (starneig_distr_matrix_t matrix) |
Returns the number of (global) rows. More... | |
int | starneig_distr_matrix_get_cols (starneig_distr_matrix_t matrix) |
Returns the number of (global) columns. More... | |
int | starneig_distr_matrix_get_row_blksz (starneig_distr_matrix_t matrix) |
Returns the number of rows in a distribution block. More... | |
int | starneig_distr_matrix_get_col_blksz (starneig_distr_matrix_t matrix) |
Returns the number of columns in a distribution block. More... | |
Data distributions | |
enum | starneig_distr_order_t { STARNEIG_ORDER_DEFAULT, STARNEIG_ORDER_ROW_MAJOR, STARNEIG_ORDER_COL_MAJOR } |
Process mapping order. More... | |
typedef struct starneig_distr * | starneig_distr_t |
Data distribution. | |
starneig_distr_t | starneig_distr_init () |
Creates a default data distribution. More... | |
starneig_distr_t | starneig_distr_init_mesh (int rows, int cols, starneig_distr_order_t order) |
Creates a two-dimensional block cyclic data distribution. More... | |
starneig_distr_t | starneig_distr_init_func (int(*func)(int row, int col, void *arg), void *arg, size_t arg_size) |
Creates a distribution using a data distribution function. More... | |
starneig_distr_t | starneig_distr_duplicate (starneig_distr_t distr) |
Duplicates a data distribution. More... | |
void | starneig_distr_destroy (starneig_distr_t distr) |
Destroys a data distribution. More... | |
Distributed matrices | |
enum | starneig_datatype_t { STARNEIG_REAL_DOUBLE } |
Distributed matrix element data type. More... | |
typedef struct starneig_distr_matrix * | starneig_distr_matrix_t |
Distributed matrix. | |
starneig_distr_matrix_t | starneig_distr_matrix_create (int rows, int cols, int row_blksz, int col_blksz, starneig_datatype_t type, starneig_distr_t distr) |
Creates a distributed matrix with uninitialized matrix elements. More... | |
starneig_distr_matrix_t | starneig_distr_matrix_create_local (int rows, int cols, starneig_datatype_t type, int owner, double *A, int ldA) |
Creates a single-owner distributed matrix from a local matrix. More... | |
void | starneig_distr_matrix_destroy (starneig_distr_matrix_t matrix) |
Destroys a distributed matrix. More... | |
void | starneig_distr_matrix_copy (starneig_distr_matrix_t source, starneig_distr_matrix_t dest) |
Copies the contents of a distributed matrix to a second distributed matrix. More... | |
void | starneig_distr_matrix_copy_region (int sr, int sc, int dr, int dc, int rows, int cols, starneig_distr_matrix_t source, starneig_distr_matrix_t dest) |
Copies region of a distributed matrix to a second distributed matrix. More... | |
This file contains data types and functions for distributed matrices.
Copyright (c) 2019-2020, Umeå Universitet
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.