HMLP: High-performance Machine Learning Primitives
hmlp::mpigofmm::centersplit< SPDMATRIX, N_SPLIT, T > Struct Template Reference

This the main splitter used to build the Spd-Askit tree. First compute the approximate center using subsamples. Then find the two most far away points to do the projection. More...

#include <gofmm_mpi.hpp>

Inheritance diagram for hmlp::mpigofmm::centersplit< SPDMATRIX, N_SPLIT, T >:
hmlp::gofmm::centersplit< SPDMATRIX, N_SPLIT, T >

Public Member Functions

 centersplit (SPDMATRIX &K)
 
vector< vector< size_t > > operator() (vector< size_t > &gids) const
 
vector< vector< size_t > > operator() (vector< size_t > &gids, mpi::Comm comm) const
 
- Public Member Functions inherited from hmlp::gofmm::centersplit< SPDMATRIX, N_SPLIT, T >
 centersplit (SPDMATRIX &K)
 
vector< vector< size_t > > operator() (vector< size_t > &gids) const
 

Additional Inherited Members

- Public Attributes inherited from hmlp::gofmm::centersplit< SPDMATRIX, N_SPLIT, T >
SPDMATRIX * Kptr = NULL
 
DistanceMetric metric = ANGLE_DISTANCE
 
size_t n_centroid_samples = 5
 

Detailed Description

template<typename SPDMATRIX, int N_SPLIT, typename T>
struct hmlp::mpigofmm::centersplit< SPDMATRIX, N_SPLIT, T >

This the main splitter used to build the Spd-Askit tree. First compute the approximate center using subsamples. Then find the two most far away points to do the projection.

end MedianSplit()

Member Function Documentation

template<typename SPDMATRIX , int N_SPLIT, typename T >
vector<vector<size_t> > hmlp::mpigofmm::centersplit< SPDMATRIX, N_SPLIT, T >::operator() ( vector< size_t > &  gids) const
inline

Shared-memory operator.

template<typename SPDMATRIX , int N_SPLIT, typename T >
vector<vector<size_t> > hmlp::mpigofmm::centersplit< SPDMATRIX, N_SPLIT, T >::operator() ( vector< size_t > &  gids,
mpi::Comm  comm 
) const
inline

Distributed operator.

All assertions

MPI Support.

Collecting column samples of K.

Bcast column_samples from rank 0.

Compute all pairwise distances.

Zero out the temporary buffer.

Accumulate distances to the temporary buffer.

Find the f2c (far most to center) from points owned

Create a pair for MPI Allreduce

max_pair = max( local_max_pairs ) over all MPI processes in comm

Boardcast gidf2c from the MPI process which has the max_pair

Collecting KIP and kpp

Compute all pairwise distances.

Find f2f (far most to far most) from owned points

Create a pair for MPI Allreduce

max_pair = max( local_max_pairs ) over all MPI processes in comm

boardcast gidf2f from the MPI process which has the max_pair

Collecting KIQ and kqq

Compute all pairwise distances.

We use relative distances (dip - diq) for clustering.

Split gids into two clusters using median split.

Perform P2P redistribution.


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