SparseLibrary  Version 1.6.0
Public Member Functions | Public Attributes | List of all members
RDB_shared_data< T > Class Template Reference

Shared data for RDBHilbert threads. More...

#include <RDBHilbert.hpp>

Public Member Functions

 RDB_shared_data ()
 In case of ZXa or ZaX, a pointer to a collection of global input vectors. More...
 
 RDB_shared_data (size_t _id, size_t _P, std::vector< Triplet< double > > *_original, size_t *_nzb, pthread_mutex_t *_mutex, pthread_cond_t *_cond, pthread_mutex_t *_end_mutex, pthread_cond_t *_end_cond, size_t *_sync, size_t *_end_sync, size_t _ovsize, size_t _ovoffset, const T **const _in, T **const _out)
 Recommended constructor.
 

Public Attributes

size_t id
 Process ID. More...
 
size_t P
 Number of SPMD processes. More...
 
unsigned char mode
 0 undef, 1 init, 2 zax, 3 zxa, 4 exit, 5 reset, 6 ZaX, 7 ZXa. More...
 
size_t repeat
 How many times to repeat the operation set in `mode' (above, only for 2, 3, 6 and 7)
 
std::vector< Triplet< T > > * original
 How many SpMVs in a multiple-RHS computation (ZXa or ZaX). More...
 
size_t * nzb
 Will store rowsums.
 
double time
 Will store local timing.
 
size_t bytes
 Will store the local amount of bytes used.
 
size_t fillIn
 Will store the total fillIn at this thread.
 
pthread_mutex_t * mutex
 Pointer to the sync mutex. More...
 
pthread_cond_t * cond
 Pointer to the sync condition. More...
 
pthread_mutex_t * end_mutex
 Pointer to the end mutex. More...
 
pthread_cond_t * end_cond
 Pointer to the end condition. More...
 
size_t * sync
 Sync counter. More...
 
size_t * end_sync
 End counter. More...
 
size_t output_vector_size
 Output vector length. More...
 
size_t output_vector_offset
 Output vector offset (w.r.t. More...
 
T * local_y
 Pointer to the local output vector. More...
 
const T ** input
 Pointer to a global input vector. More...
 
T ** output
 Pointer to a global output vector. More...
 

Detailed Description

template<typename T>
class RDB_shared_data< T >

Shared data for RDBHilbert threads.

Constructor & Destructor Documentation

template<typename T>
RDB_shared_data< T >::RDB_shared_data ( )
inline

In case of ZXa or ZaX, a pointer to a collection of global input vectors.

In case of ZXa or ZaX, a pointer to a collection of output vectors. Pointer to a local output vector set (in case of ZXa or ZaX). Base constructor. Will initialise all to invalid values or NULL.

Member Data Documentation

template<typename T>
pthread_cond_t* RDB_shared_data< T >::cond

Pointer to the sync condition.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
pthread_cond_t* RDB_shared_data< T >::end_cond

Pointer to the end condition.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
pthread_mutex_t* RDB_shared_data< T >::end_mutex

Pointer to the end mutex.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
size_t* RDB_shared_data< T >::end_sync

End counter.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
size_t RDB_shared_data< T >::id
template<typename T>
const T** RDB_shared_data< T >::input

Pointer to a global input vector.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
T* RDB_shared_data< T >::local_y

Pointer to the local output vector.

Referenced by RDBHilbert< T, MatrixType >::collectY(), and RDBHilbert< T, MatrixType >::thread().

template<typename T>
unsigned char RDB_shared_data< T >::mode

0 undef, 1 init, 2 zax, 3 zxa, 4 exit, 5 reset, 6 ZaX, 7 ZXa.

Note that currently modes 6 and 7 are disabled!

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
pthread_mutex_t* RDB_shared_data< T >::mutex

Pointer to the sync mutex.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
std::vector< Triplet< T > >* RDB_shared_data< T >::original

How many SpMVs in a multiple-RHS computation (ZXa or ZaX).

Pointer to the original input (for distributed input parsing).

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
T** RDB_shared_data< T >::output

Pointer to a global output vector.

Referenced by RDBHilbert< T, MatrixType >::collectY(), and RDBHilbert< T, MatrixType >::thread().

template<typename T>
size_t RDB_shared_data< T >::output_vector_offset

Output vector offset (w.r.t.

global indices).

Referenced by RDBHilbert< T, MatrixType >::collectY(), and RDBHilbert< T, MatrixType >::thread().

template<typename T>
size_t RDB_shared_data< T >::output_vector_size
template<typename T>
size_t RDB_shared_data< T >::P

Number of SPMD processes.

Referenced by RDBHilbert< T, MatrixType >::thread().

template<typename T>
size_t* RDB_shared_data< T >::sync

Sync counter.

Referenced by RDBHilbert< T, MatrixType >::thread().


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