GHOST  1.1.2
General, Hybrid, and Optimized Sparse Toolkit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Attributes | List of all members
ghost_context Struct Reference

The GHOST context. More...

#include <context.h>

Collaboration diagram for ghost_context:
Collaboration graph
[legend]

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_maprow_map
 The row map of this context. More...
 
ghost_mapcol_map
 The column map of this context. More...
 
ghost_lidxwishes
 Number of wishes (= unique RHS elements to get) from each rank. More...
 
ghost_lidx ** wishlist
 Column idx of wishes from each rank. More...
 
ghost_lidxdues
 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_lidxhput_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_lidxentsInCol
 Number of matrix entries in each local column. More...
 
ghost_lidx nChunkAvg
 The number of chunks in avg_ptr. More...
 
ghost_lidxavg_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_lidxmapAvg
 Map used to compress the pointer (eg: used in densemat averaging) More...
 
ghost_lidxmappedDuelist
 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_lidxcolor_ptr
 The number of rows with each color (length: ncolors+1). More...
 
ghost_lidx nzones
 The number of total zones (odd+even) More...
 
ghost_lidxzone_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...
 

Detailed Description

The GHOST context.

The context is relevant in the MPI-parallel case. It holds information about data distribution and communication.

Member Data Documentation

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.

See Also
ghost_context_create for use of the weight.
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].


The documentation for this struct was generated from the following file: