Contains the DistributedMatrix and DistributedMatrixWrapper classes, wrappers around ScaLAPACK/PBLAS style 2d block cyclic matrices. See also strumpack::BLACSGrid for the processor grid (BLACS functionality). More...
#include <vector>
#include <string>
#include <cmath>
#include <functional>
#include "misc/MPIWrapper.hpp"
#include "misc/RandomWrapper.hpp"
#include "DenseMatrix.hpp"
#include "BLACSGrid.hpp"
Go to the source code of this file.
Classes | |
class | strumpack::DistributedMatrix< scalar_t > |
2D block cyclicly distributed matrix, as used by ScaLAPACK. More... | |
class | strumpack::DistributedMatrixWrapper< scalar_t > |
Namespaces | |
strumpack | |
Functions | |
template<typename scalar_t > | |
void | strumpack::copy (std::size_t m, std::size_t n, const DistributedMatrix< scalar_t > &a, std::size_t ia, std::size_t ja, DenseMatrix< scalar_t > &b, int dest, int context_all) |
template<typename scalar_t > | |
void | strumpack::copy (std::size_t m, std::size_t n, const DenseMatrix< scalar_t > &a, int src, DistributedMatrix< scalar_t > &b, std::size_t ib, std::size_t jb, int context_all) |
template<typename scalar_t > | |
void | strumpack::copy (std::size_t m, std::size_t n, const DistributedMatrix< scalar_t > &a, std::size_t ia, std::size_t ja, DistributedMatrix< scalar_t > &b, std::size_t ib, std::size_t jb, int context_all) |
template<typename scalar_t > | |
long long int | strumpack::LU_flops (const DistributedMatrix< scalar_t > &a) |
template<typename scalar_t > | |
long long int | strumpack::solve_flops (const DistributedMatrix< scalar_t > &b) |
template<typename scalar_t > | |
long long int | strumpack::LQ_flops (const DistributedMatrix< scalar_t > &a) |
template<typename scalar_t > | |
long long int | strumpack::ID_row_flops (const DistributedMatrix< scalar_t > &a, int rank) |
template<typename scalar_t > | |
long long int | strumpack::trsm_flops (Side s, scalar_t alpha, const DistributedMatrix< scalar_t > &a, const DistributedMatrix< scalar_t > &b) |
template<typename scalar_t > | |
long long int | strumpack::gemm_flops (Trans ta, Trans tb, scalar_t alpha, const DistributedMatrix< scalar_t > &a, const DistributedMatrix< scalar_t > &b, scalar_t beta) |
template<typename scalar_t > | |
long long int | strumpack::gemv_flops (Trans ta, const DistributedMatrix< scalar_t > &a, scalar_t alpha, scalar_t beta) |
template<typename scalar_t > | |
long long int | strumpack::orthogonalize_flops (const DistributedMatrix< scalar_t > &a) |
template<typename scalar_t > | |
std::unique_ptr< const DistributedMatrixWrapper< scalar_t > > | strumpack::ConstDistributedMatrixWrapperPtr (std::size_t m, std::size_t n, const DistributedMatrix< scalar_t > &D, std::size_t i, std::size_t j) |
template<typename scalar_t > | |
void | strumpack::gemm (Trans ta, Trans tb, scalar_t alpha, const DistributedMatrix< scalar_t > &A, const DistributedMatrix< scalar_t > &B, scalar_t beta, DistributedMatrix< scalar_t > &C) |
template<typename scalar_t > | |
void | strumpack::trsm (Side s, UpLo u, Trans ta, Diag d, scalar_t alpha, const DistributedMatrix< scalar_t > &A, DistributedMatrix< scalar_t > &B) |
template<typename scalar_t > | |
void | strumpack::trsv (UpLo ul, Trans ta, Diag d, const DistributedMatrix< scalar_t > &A, DistributedMatrix< scalar_t > &B) |
template<typename scalar_t > | |
void | strumpack::gemv (Trans ta, scalar_t alpha, const DistributedMatrix< scalar_t > &A, const DistributedMatrix< scalar_t > &X, scalar_t beta, DistributedMatrix< scalar_t > &Y) |
template<typename scalar_t > | |
DistributedMatrix< scalar_t > | strumpack::vconcat (int cols, int arows, int brows, const DistributedMatrix< scalar_t > &a, const DistributedMatrix< scalar_t > &b, const BLACSGrid *gnew, int cxt_all) |
template<typename scalar_t > | |
void | strumpack::subgrid_copy_to_buffers (const DistributedMatrix< scalar_t > &a, const DistributedMatrix< scalar_t > &b, int p0, int npr, int npc, std::vector< std::vector< scalar_t >> &sbuf) |
template<typename scalar_t > | |
void | strumpack::subproc_copy_to_buffers (const DenseMatrix< scalar_t > &a, const DistributedMatrix< scalar_t > &b, int p0, int npr, int npc, std::vector< std::vector< scalar_t >> &sbuf) |
template<typename scalar_t > | |
void | strumpack::subgrid_add_from_buffers (const BLACSGrid *subg, int master, DistributedMatrix< scalar_t > &b, std::vector< scalar_t * > &pbuf) |
Contains the DistributedMatrix and DistributedMatrixWrapper classes, wrappers around ScaLAPACK/PBLAS style 2d block cyclic matrices. See also strumpack::BLACSGrid for the processor grid (BLACS functionality).