MADNESS 0.10.1
madness::Coulomb< T, NDIM >::MacroTaskCoulomb::MacroTaskPartitionerCoulomb Class Reference

#include <SCFOperators.h>

Inheritance diagram for madness::Coulomb< T, NDIM >::MacroTaskCoulomb::MacroTaskPartitionerCoulomb:
Collaboration diagram for madness::Coulomb< T, NDIM >::MacroTaskCoulomb::MacroTaskPartitionerCoulomb:

Public Member Functions

partitionT do_partitioning (const std::size_t &vsize1, const std::size_t &vsize2, const std::string policy) const override
 override this if you want your own partitioning
Public Member Functions inherited from madness::MacroTaskPartitioner
 MacroTaskPartitioner ()
virtual ~MacroTaskPartitioner ()
virtual double compute_priority (const Batch &batch) const
 simple default priority function: size of the input batch
partitionT do_1d_partition (const std::size_t vsize, const std::string policy) const
partitionT do_2d_partition (const std::size_t vsize, const std::size_t v2size, const std::string policy) const
 outer product of 2 1d-partitionings – result batches correspond to first input batches
template<typename tupleT>
partitionT partition_tasks (const tupleT &argtuple) const
 this will be called by MacroTask, it will always partition first (and possibly second) vector of arguments
MacroTaskPartitioner & set_dimension (const std::size_t &n)
MacroTaskPartitioner & set_max_batch_size (const long &n)
MacroTaskPartitioner & set_min_batch_size (const long &n)
MacroTaskPartitioner & set_nsubworld (const long &n)
MacroTaskPartitioner & set_policy (const std::string &n)

Additional Inherited Members

Public Types inherited from madness::MacroTaskPartitioner
typedef std::list< std::pair< Batch, double > > partitionT
Static Public Member Functions inherited from madness::MacroTaskPartitioner
template<typename argtupleT>
static void recompute_priorities (partitionT &partition, const argtupleT &argtuple, const std::function< double(const Batch &batch, const argtupleT &)> &predicate)
 the task can provide a priority function, otherwise the default is used
Public Attributes inherited from madness::MacroTaskPartitioner
std::size_t dimension = 1
 partition one or two vectors
std::size_t max_batch_size = 10
 maximum batch size (for memory management)
std::size_t min_batch_size =5
 minimum batch size
std::size_t nsubworld =1
 number of worlds (try to have enough batches for all worlds)
std::string policy = "guided"
 how to partition the batches

Member Function Documentation

◆ do_partitioning()

template<typename T, std::size_t NDIM>
partitionT madness::Coulomb< T, NDIM >::MacroTaskCoulomb::MacroTaskPartitionerCoulomb::do_partitioning ( const std::size_t & vsize1,
const std::size_t & vsize2,
const std::string policy ) const
inlineoverridevirtual

override this if you want your own partitioning

Reimplemented from madness::MacroTaskPartitioner.

References madness::MacroTaskPartitioner::do_1d_partition(), and madness::MacroTaskPartitioner::policy.


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