33 #ifndef CORE_ALGORITHMS_MATH_PARALLELALGEBRA_PARALLELLINEARALGEBRA_H
34 #define CORE_ALGORITHMS_MATH_PARALLELALGEBRA_PARALLELLINEARALGEBRA_H
38 #include <boost/noncopyable.hpp>
46 namespace Algorithms {
49 class ParallelLinearAlgebra;
75 void setFlag(
size_t i,
bool b) { success_[i] = b; }
77 void setFail(
size_t i) { success_[i] =
false; }
78 bool isSuccess(
size_t i)
const {
return success_[i]; }
80 void wait() { barrier_.wait(); }
86 for (
size_t j = 0; j < success_.size(); ++j)
102 std::list<Datatypes::DenseColumnMatrixHandle> vectors_;
103 std::vector<bool> success_;
108 std::vector<double> reduce1_;
109 std::vector<double> reduce2_;
119 bool start_parallel(
SolverInputs& matrices,
int nproc = -1)
const;
199 double reduce_sum(
double val);
200 double reduce_min(
double val);
201 double reduce_max(
double val);
210 size_t local_size16_;
double * reduceBuffer2()
Definition: ParallelLinearAlgebra.h:97
bool first()
Definition: ParallelLinearAlgebra.h:195
index_type * columns_
Definition: ParallelLinearAlgebra.h:142
int proc()
Definition: ParallelLinearAlgebra.h:192
Definition: ParallelLinearAlgebra.h:113
void setSuccess(size_t i)
Definition: ParallelLinearAlgebra.h:76
int nproc()
Definition: ParallelLinearAlgebra.h:193
size_t n_
Definition: ParallelLinearAlgebra.h:146
Datatypes::DenseColumnMatrixHandle getCurrentMatrix() const
Definition: ParallelLinearAlgebra.h:72
void addVector(Datatypes::DenseColumnMatrixHandle mat)
Definition: ParallelLinearAlgebra.h:74
#define SCISHARE
Definition: share.h:39
Definition: ParallelLinearAlgebra.h:130
boost::shared_ptr< SparseRowMatrix > SparseRowMatrixHandle
Definition: MatrixFwd.h:68
double * data_
Definition: ParallelLinearAlgebra.h:143
Definition: ParallelLinearAlgebraTests.cc:304
double * reduceBuffer1()
Definition: ParallelLinearAlgebra.h:96
SolverInputs & inputs()
Definition: ParallelLinearAlgebra.h:94
size_t m_
Definition: ParallelLinearAlgebra.h:145
Definition: ParallelLinearAlgebraTests.cc:358
void setFlag(size_t i, bool b)
Definition: ParallelLinearAlgebra.h:75
dictionary data
Definition: eabLatVolData.py:11
boost::shared_ptr< DenseColumnMatrix > DenseColumnMatrixHandle
Definition: MatrixFwd.h:60
Definition: ParallelLinearAlgebra.h:133
void setCurrentMatrix(Datatypes::DenseColumnMatrixHandle mat)
Definition: ParallelLinearAlgebra.h:73
int numProcs() const
Definition: ParallelLinearAlgebra.h:81
size_t nnz_
Definition: ParallelLinearAlgebra.h:147
bool success() const
Definition: ParallelLinearAlgebra.h:83
void wait()
Definition: ParallelLinearAlgebra.h:80
double * data_
Definition: ParallelLinearAlgebra.h:135
Definition: ParallelLinearAlgebra.h:139
Definition: ParallelLinearAlgebra.h:67
size_t getSize() const
Definition: ParallelLinearAlgebra.h:71
long long index_type
Definition: Types.h:39
Definition: ParallelLinearAlgebraTests.cc:751
size_t size_
Definition: ParallelLinearAlgebra.h:136
bool isSuccess(size_t i) const
Definition: ParallelLinearAlgebra.h:78
index_type * rows_
Definition: ParallelLinearAlgebra.h:141
void setFail(size_t i)
Definition: ParallelLinearAlgebra.h:77