COMBINATORIAL_BLAS 1.6
Loading...
Searching...
No Matches
ParFriends.h File Reference
#include "mpi.h"
#include <iostream>
#include <cstdarg>
#include "SpParMat.h"
#include "SpParMat3D.h"
#include "SpParHelper.h"
#include "MPIType.h"
#include "Friends.h"
#include "OptBuf.h"
#include "mtSpGEMM.h"
#include "MultiwayMerge.h"
#include <unistd.h>
#include <type_traits>
Include dependency graph for ParFriends.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  combblas::promote_trait< NZT, samparr_t >
class  combblas::SamplesSaveHandler
struct  combblas::SelectMinxSR< NZT >

Namespaces

namespace  combblas

Macros

#define NROUNDS   5

Typedefs

typedef std::array< float, NROUNDS > combblas::samparr_t

Functions

template<typename IT, typename NT>
FullyDistVec< IT, NT > combblas::Concatenate (std::vector< FullyDistVec< IT, NT > > &vecs)
template<typename MATRIXA, typename MATRIXB>
bool combblas::CheckSpGEMMCompliance (const MATRIXA &A, const MATRIXB &B)
template<typename IT, typename NT, typename DER>
void combblas::MCLPruneRecoverySelect (SpParMat< IT, NT, DER > &A, NT hardThreshold, IT selectNum, IT recoverNum, NT recoverPct, int kselectVersion)
template<typename SR, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
IU combblas::EstimateFLOP (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool clearA=false, bool clearB=false)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat< IU, NUO, UDERO > combblas::MemEfficientSpGEMM (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, int phases, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int computationKernel, int64_t perProcessMemory)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
int combblas::CalculateNumberOfPhases (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int64_t perProcessMemory)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat< IU, NUO, UDERO > combblas::Mult_AnXBn_DoubleBuff (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool clearA=false, bool clearB=false)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat< IU, NUO, UDERO > combblas::Mult_AnXBn_Synch (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool clearA=false, bool clearB=false)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat< IU, NUO, UDERO > combblas::Mult_AnXBn_Overlap (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool clearA=false, bool clearB=false)
template<typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
int64_t combblas::EstPerProcessNnzSUMMA (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool hashEstimate)
template<typename MATRIX, typename VECTOR>
void combblas::CheckSpMVCompliance (const MATRIX &A, const VECTOR &x)
template<typename SR, typename IU, typename NUM, typename UDER>
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IU > &x, bool indexisvalue, OptBuf< int32_t, typename promote_trait< NUM, IU >::T_promote > &optbuf)
template<typename SR, typename IU, typename NUM, typename UDER>
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IU > &x, bool indexisvalue)
template<typename IU, typename NV>
void combblas::TransposeVector (MPI_Comm &World, const FullyDistSpVec< IU, NV > &x, int32_t &trxlocnz, IU &lenuntil, int32_t *&trxinds, NV *&trxnums, bool indexisvalue)
template<typename IU, typename NV>
void combblas::AllGatherVector (MPI_Comm &ColWorld, int trxlocnz, IU lenuntil, int32_t *&trxinds, NV *&trxnums, int32_t *&indacc, NV *&numacc, int &accnz, bool indexisvalue)
template<typename SR, typename IVT, typename OVT, typename IU, typename NUM, typename UDER>
void combblas::LocalSpMV (const SpParMat< IU, NUM, UDER > &A, int rowneighs, OptBuf< int32_t, OVT > &optbuf, int32_t *&indacc, IVT *&numacc, int32_t *&sendindbuf, OVT *&sendnumbuf, int *&sdispls, int *sendcnt, int accnz, bool indexisvalue, PreAllocatedSPA< OVT > &SPA)
template<typename SR, typename IU, typename OVT>
void combblas::MergeContributions (int *listSizes, std::vector< int32_t * > &indsvec, std::vector< OVT * > &numsvec, std::vector< IU > &mergedind, std::vector< OVT > &mergednum)
template<typename SR, typename IU, typename OVT>
void combblas::MergeContributions_threaded (int *&listSizes, std::vector< int32_t * > &indsvec, std::vector< OVT * > &numsvec, std::vector< IU > &mergedind, std::vector< OVT > &mergednum, IU maxindex)
template<typename SR, typename IVT, typename OVT, typename IU, typename NUM, typename UDER>
void combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue, OptBuf< int32_t, OVT > &optbuf, PreAllocatedSPA< OVT > &SPA)
template<typename SR, typename IVT, typename OVT, typename IU, typename NUM, typename UDER>
void combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue, PreAllocatedSPA< OVT > &SPA)
template<typename SR, typename IVT, typename OVT, typename IU, typename NUM, typename UDER>
void combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue)
template<typename SR, typename IVT, typename OVT, typename IU, typename NUM, typename UDER>
void combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue, OptBuf< int32_t, OVT > &optbuf)
template<typename SR, typename IU, typename NUM, typename NUV, typename UDER>
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistVec< IU, NUV > &x)
template<typename SR, typename IU, typename NUM, typename NUV, typename UDER>
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > combblas::SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, NUV > &x)
template<typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat< IU, NU1, UDERA > combblas::SetDifference (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B)
template<typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDERA, UDERB >::T_promote > combblas::EWiseMult (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, bool exclude)
template<typename RETT, typename RETDER, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB, typename _BinaryOperation>
SpParMat< IU, RETT, RETDER > combblas::EWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, bool notB, const NU2 &defaultBVal)
template<typename RETT, typename RETDER, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB, typename _BinaryOperation, typename _BinaryPredicate>
SpParMat< IU, RETT, RETDER > combblas::EWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, _BinaryPredicate do_op, bool allowANulls, bool allowBNulls, const NU1 &ANullVal, const NU2 &BNullVal, const bool allowIntersect, const bool useExtendedBinOp)
template<typename RETT, typename RETDER, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB, typename _BinaryOperation, typename _BinaryPredicate>
SpParMat< IU, RETT, RETDER > combblas::EWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, _BinaryPredicate do_op, bool allowANulls, bool allowBNulls, const NU1 &ANullVal, const NU2 &BNullVal, const bool allowIntersect=true)
template<typename IU, typename NU1, typename NU2>
FullyDistSpVec< IU, typename promote_trait< NU1, NU2 >::T_promote > combblas::EWiseMult (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, bool exclude, NU2 zero)
template<typename RET, typename IU, typename NU1, typename NU2, typename _BinaryOperation, typename _BinaryPredicate>
FullyDistSpVec< IU, RET > combblas::EWiseApply_threaded (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, NU1 Vzero, const bool useExtendedBinOp)
template<typename RET, typename IU, typename NU1, typename NU2, typename _BinaryOperation, typename _BinaryPredicate>
FullyDistSpVec< IU, RET > combblas::EWiseApply (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, NU1 Vzero, const bool useExtendedBinOp)
template<typename RET, typename IU, typename NU1, typename NU2, typename _BinaryOperation, typename _BinaryPredicate>
FullyDistSpVec< IU, RET > combblas::EWiseApply (const FullyDistSpVec< IU, NU1 > &V, const FullyDistSpVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, bool allowWNulls, NU1 Vzero, NU2 Wzero, const bool allowIntersect, const bool useExtendedBinOp)
template<typename RET, typename IU, typename NU1, typename NU2, typename _BinaryOperation, typename _BinaryPredicate>
FullyDistSpVec< IU, RET > combblas::EWiseApply (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, NU1 Vzero)
template<typename RET, typename IU, typename NU1, typename NU2, typename _BinaryOperation, typename _BinaryPredicate>
FullyDistSpVec< IU, RET > combblas::EWiseApply (const FullyDistSpVec< IU, NU1 > &V, const FullyDistSpVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, bool allowWNulls, NU1 Vzero, NU2 Wzero, const bool allowIntersect=true)
template<typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
int64_t combblas::EstPerProcessNnzSpMV (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDER1, typename UDER2>
SpParMat3D< IU, NUO, UDERO > combblas::Mult_AnXBn_SUMMA3D (SpParMat3D< IU, NU1, UDER1 > &A, SpParMat3D< IU, NU2, UDER2 > &B)
template<typename SR, typename NUO, typename UDERO, typename IU, typename NU1, typename NU2, typename UDERA, typename UDERB>
SpParMat3D< IU, NUO, UDERO > combblas::MemEfficientSpGEMM3D (SpParMat3D< IU, NU1, UDERA > &A, SpParMat3D< IU, NU2, UDERB > &B, int phases, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int computationKernel, int64_t perProcessMemory)

Macro Definition Documentation

◆ NROUNDS

#define NROUNDS   5

Definition at line 2713 of file ParFriends.h.