File decomposition_plan.hpp

This file contains the class used to encapsulate the paritioning logic. It will find a reasonable partitioning scheme based on some job dependent conditions (number of nodes, number of frames and atoms..)

Author

Benjamin Lindner ben@benlabs.net

Version

See VERSION in CMakeLists.txt

Copyright

GNU General Public License

class DecompositionParameters
#include <decomposition_plan.hpp>

Encapsulates a valid decomposition for a 2D partitioning of a NQ x NAF problem onto NN nodes with NP partitions and NNpP nodes per partition. Computes various derived properties upon construction.

Public Functions

DecompositionParameters(size_t nn, size_t nq, size_t naf, size_t np, size_t elbytesize)
size_t penalty()
double penalty_percent()
size_t PID(size_t rank)
inline size_t get_NN()
inline size_t get_NQ()
inline size_t get_NAF()
inline size_t get_NP()
inline size_t get_NQcycles()
inline size_t get_NAFcycles()
inline size_t get_NNpP()
inline size_t nbytesize()

Private Members

size_t m_NN
size_t m_NQ
size_t m_NAF
size_t m_NP
size_t m_penalty
size_t m_NAFcycles
size_t m_NQcycles
size_t m_NNpP
size_t m_elbytesize
size_t m_nbytesize
class DecompositionPlan
#include <decomposition_plan.hpp>

Searches for a valid decomposition for a 2D partitioning of a NQ x NAF problem onto NN nodes with NP partitions and NNpP nodes per partition.

Public Functions

DecompositionPlan(size_t nn, size_t nq, size_t naf, size_t elbytesize, size_t nmaxbytesize)
~DecompositionPlan()
std::vector<size_t> colors()
double static_imbalance()
size_t penalty()
size_t partitions()
size_t partitionsize()
size_t nbytesize()

Private Members

DecompositionParameters *p_dp_best