![]() |
GHOST
1.1.2
General, Hybrid, and Optimized Sparse Toolkit
|
The GHOST context. More...
#include <context.h>
Public Attributes | |
ghost_gidx | gnnz |
The global number of non-zeros. More... | |
ghost_lidx | nnz |
Local number of non-zeros. More... | |
ghost_context_flags_t | flags |
The context's property flags. More... | |
double | weight |
The weight of this context. More... | |
ghost_mpi_comm | mpicomm |
The context's MPI communicator. More... | |
ghost_mpi_comm | mpicomm_parent |
The context's parent MPI communicator. More... | |
ghost_map * | row_map |
The row map of this context. More... | |
ghost_map * | col_map |
The column map of this context. More... | |
ghost_lidx * | wishes |
Number of wishes (= unique RHS elements to get) from each rank. More... | |
ghost_lidx ** | wishlist |
Column idx of wishes from each rank. More... | |
ghost_lidx * | dues |
Number of dues (= unique RHS elements from myself) to each rank. More... | |
ghost_lidx ** | duelist |
Column indices of dues to each rank. More... | |
ghost_lidx ** | cu_duelist |
Column indices of dues to each rank (CUDA) More... | |
ghost_lidx * | hput_pos |
First index to get RHS elements coming from each rank. More... | |
int * | duepartners |
The list of ranks to which this rank has to send RHS vector elements in SpMV communcations. More... | |
int | nduepartners |
The number of ranks to which this rank has to send RHS vector elements in SpMV communication. More... | |
int * | wishpartners |
The list of ranks from which this rank has to receive RHS vector elements in SpMV communcations. More... | |
int | nwishpartners |
The number of ranks from which this rank has to receive RHS vector elements in SpMV communication. More... | |
ghost_lidx * | entsInCol |
Number of matrix entries in each local column. More... | |
ghost_lidx | nChunkAvg |
The number of chunks in avg_ptr. More... | |
ghost_lidx * | avg_ptr |
Compressed Pointer to the densematrix row indices where averaging has to be done (eg: used in densemat averaging) More... | |
ghost_lidx | nElemAvg |
The total elements to be averaged. More... | |
ghost_lidx * | mapAvg |
Map used to compress the pointer (eg: used in densemat averaging) More... | |
ghost_lidx * | mappedDuelist |
Mapped Duelist (eg: used in densemat averaging) More... | |
int * | nrankspresent |
no. of ranks present in column index corresponding to avg_ptr (only elements with halo entries are stored) (eg: used in densemat averaging) More... | |
int | nmats |
The number of matrices in this context. More... | |
ghost_gidx | lowerBandwidth |
The bandwidth of the lower triangular part of the matrix. More... | |
ghost_gidx | upperBandwidth |
The bandwidth of the upper triangular part of the matrix. More... | |
ghost_gidx | bandwidth |
The bandwidth of the matrix. More... | |
ghost_gidx | maxColRange |
The maximum column index in the matrix (Required for example if we permute the (local + remote) part of matrix. More... | |
ghost_lidx | ncolors |
The number of colors from distance-2 coloring. More... | |
ghost_lidx * | color_ptr |
The number of rows with each color (length: ncolors+1). More... | |
ghost_lidx | nzones |
The number of total zones (odd+even) More... | |
ghost_lidx * | zone_ptr |
Pointer to odd-even (Red-Black coloring) zones of a matrix (length: nzones+1) Ordering [even_begin_1 odd_begin_1 even_begin_2 odd_begin_2 ..... nrows]. More... | |
ghost_kacz_setting | kacz_setting |
details regarding kacz is stored here More... | |
double | kaczRatio |
Store the ratio between nrows and bandwidth. More... | |
The GHOST context.
The context is relevant in the MPI-parallel case. It holds information about data distribution and communication.
ghost_lidx* ghost_context::avg_ptr |
Compressed Pointer to the densematrix row indices where averaging has to be done (eg: used in densemat averaging)
ghost_gidx ghost_context::bandwidth |
The bandwidth of the matrix.
ghost_map* ghost_context::col_map |
The column map of this context.
ghost_lidx* ghost_context::color_ptr |
The number of rows with each color (length: ncolors+1).
ghost_lidx** ghost_context::cu_duelist |
Column indices of dues to each rank (CUDA)
ghost_lidx** ghost_context::duelist |
Column indices of dues to each rank.
int* ghost_context::duepartners |
The list of ranks to which this rank has to send RHS vector elements in SpMV communcations.
Length: ghost_context::nduepartners
ghost_lidx* ghost_context::dues |
Number of dues (= unique RHS elements from myself) to each rank.
ghost_lidx* ghost_context::entsInCol |
Number of matrix entries in each local column.
ghost_context_flags_t ghost_context::flags |
The context's property flags.
ghost_gidx ghost_context::gnnz |
The global number of non-zeros.
ghost_lidx* ghost_context::hput_pos |
First index to get RHS elements coming from each rank.
ghost_kacz_setting ghost_context::kacz_setting |
details regarding kacz is stored here
double ghost_context::kaczRatio |
Store the ratio between nrows and bandwidth.
ghost_gidx ghost_context::lowerBandwidth |
The bandwidth of the lower triangular part of the matrix.
ghost_lidx* ghost_context::mapAvg |
Map used to compress the pointer (eg: used in densemat averaging)
ghost_lidx* ghost_context::mappedDuelist |
Mapped Duelist (eg: used in densemat averaging)
ghost_gidx ghost_context::maxColRange |
The maximum column index in the matrix (Required for example if we permute the (local + remote) part of matrix.
ghost_mpi_comm ghost_context::mpicomm |
The context's MPI communicator.
ghost_mpi_comm ghost_context::mpicomm_parent |
The context's parent MPI communicator.
This is only used for two-level MPI parallelism and MPI_COMM_NULL otherwise.
ghost_lidx ghost_context::nChunkAvg |
The number of chunks in avg_ptr.
ghost_lidx ghost_context::ncolors |
The number of colors from distance-2 coloring.
int ghost_context::nduepartners |
The number of ranks to which this rank has to send RHS vector elements in SpMV communication.
ghost_lidx ghost_context::nElemAvg |
The total elements to be averaged.
int ghost_context::nmats |
The number of matrices in this context.
This is used to destroy the context once the last matrix in this context gets destroyed.
ghost_lidx ghost_context::nnz |
Local number of non-zeros.
int* ghost_context::nrankspresent |
no. of ranks present in column index corresponding to avg_ptr (only elements with halo entries are stored) (eg: used in densemat averaging)
int ghost_context::nwishpartners |
The number of ranks from which this rank has to receive RHS vector elements in SpMV communication.
ghost_lidx ghost_context::nzones |
The number of total zones (odd+even)
ghost_map* ghost_context::row_map |
The row map of this context.
ghost_gidx ghost_context::upperBandwidth |
The bandwidth of the upper triangular part of the matrix.
double ghost_context::weight |
The weight of this context.
The weight is used for work distribution between processes.
ghost_lidx* ghost_context::wishes |
Number of wishes (= unique RHS elements to get) from each rank.
ghost_lidx** ghost_context::wishlist |
Column idx of wishes from each rank.
int* ghost_context::wishpartners |
The list of ranks from which this rank has to receive RHS vector elements in SpMV communcations.
Length: ghost_context::nwishpartners
ghost_lidx* ghost_context::zone_ptr |
Pointer to odd-even (Red-Black coloring) zones of a matrix (length: nzones+1) Ordering [even_begin_1 odd_begin_1 even_begin_2 odd_begin_2 ..... nrows].