|
SparseLibrary
Version 1.6.0
|
Shared data for BetaHilbert threads. More...
#include <BetaHilbert.hpp>
Public Member Functions | |
| shared_data () | |
| Base constructor. More... | |
| shared_data (size_t _id, size_t _P, std::vector< Triplet< double > > *_original, size_t *_nzb, size_t **_nzc, 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 _m, const T **_in, T **_out) | |
| Default constructor. More... | |
Public Attributes | |
| size_t | id |
| Thread ID. | |
| size_t | P |
| Total number of processors. | |
| unsigned char | mode |
| 0 undef, 1 init, 2 zax, 3 zxa, 4 exit, 5 reset | |
| size_t | repeat |
| how many times to repeat the operation set in `mode' (above, only for 2 and 3) | |
| std::vector< Triplet< T > > * | original |
| Array of local sparse blocks. More... | |
| size_t * | nzb |
| Will cache block numbers of nonzeroes. | |
| size_t ** | nzc |
| Will contain the nonzero counts of separate blocks. | |
| double | time |
| Will store local timing. | |
| size_t | bytes |
| Local memory use. | |
| pthread_mutex_t * | mutex |
| Mutex used for synchronisation. More... | |
| pthread_cond_t * | cond |
| Condition used for synchronisation. More... | |
| pthread_mutex_t * | end_mutex |
| Mutex used for end sync. More... | |
| pthread_cond_t * | end_cond |
| Condition used for end sync. More... | |
| size_t * | sync |
| Counter used for synchronisation. More... | |
| size_t * | end_sync |
| Counter used for end sync. More... | |
| size_t | output_vector_size |
| Length of the local output vector. More... | |
| size_t | output_vector_offset |
| Offset of the local output vector compared to global indices. More... | |
| T * | local_y |
| Pointer to the local output vector. More... | |
| const T ** | input |
| Array of all local input vectors of all SPMD processes. More... | |
| T ** | output |
| Array of all output vectors local to all SPMD processes. More... | |
Shared data for BetaHilbert threads.
|
inline |
Base constructor.
Initialises with invalid default arguments.
|
inline |
Default constructor.
| _id | Thread ID. |
| _P | Number of SPMD processes. |
| _original | Original set of nonzeroes. |
| _nzb | Number of sparse blocks. |
| _nzc | Number of nonzeroes in each sparse block, |
| _mutex | Sync mutex. |
| _cond | Sync condition. |
| _end_mutex | End sync mutex. |
| _end_cond | End sync condition. |
| _sync | Sync counter. |
| _end_sync | End sync counter. |
| _m | Number of matrix rows. |
| _in | Input vectors of all SPMD processes. |
| _out | Output vectors of all SPMD processes. |
| pthread_cond_t* shared_data< T >::cond |
Condition used for synchronisation.
Referenced by BetaHilbert< T >::collectY(), and BetaHilbert< T >::thread().
| pthread_cond_t* shared_data< T >::end_cond |
Condition used for end sync.
Referenced by BetaHilbert< T >::thread().
| pthread_mutex_t* shared_data< T >::end_mutex |
Mutex used for end sync.
Referenced by BetaHilbert< T >::thread().
| size_t* shared_data< T >::end_sync |
Counter used for end sync.
Referenced by BetaHilbert< T >::thread().
| const T** shared_data< T >::input |
Array of all local input vectors of all SPMD processes.
Referenced by BetaHilbert< T >::thread().
| T* shared_data< T >::local_y |
Pointer to the local output vector.
Referenced by BetaHilbert< T >::collectY(), and BetaHilbert< T >::thread().
| pthread_mutex_t* shared_data< T >::mutex |
Mutex used for synchronisation.
Referenced by BetaHilbert< T >::collectY(), and BetaHilbert< T >::thread().
| std::vector< Triplet< T > >* shared_data< T >::original |
Array of local sparse blocks.
Referenced by BetaHilbert< T >::thread().
| T** shared_data< T >::output |
Array of all output vectors local to all SPMD processes.
Referenced by BetaHilbert< T >::collectY(), and BetaHilbert< T >::thread().
| size_t shared_data< T >::output_vector_offset |
Offset of the local output vector compared to global indices.
| size_t shared_data< T >::output_vector_size |
Length of the local output vector.
Referenced by BetaHilbert< T >::collectY(), and BetaHilbert< T >::thread().
| size_t* shared_data< T >::sync |
Counter used for synchronisation.
Referenced by BetaHilbert< T >::collectY(), and BetaHilbert< T >::thread().
1.8.7