File assignment.hpp

This file contains operational classes which mimic data types and encapsulate assignment information.

Author

Benjamin Lindner ben@benlabs.net

Version

See VERSION in CMakeLists.txt

Copyright

GNU General Public License

class Assignment
#include <assignment.hpp>

Interface which represents a generic assignment of a number of tasks towards a number of nodes.

Subclassed by DivAssignment, ModAssignment

Public Functions

inline Assignment(size_t NN, size_t rank, size_t NAF)
virtual size_t operator[](size_t index) = 0
virtual size_t size() = 0
virtual size_t offset() = 0
virtual bool contains(size_t i) = 0
virtual size_t index(size_t i) = 0

Protected Attributes

size_t NN_
size_t NAF_
size_t rank_
size_t size_
size_t offset_
class ModAssignment : public Assignment
#include <assignment.hpp>

Specific assignment class which places tasks according to modulo logic.

Public Functions

ModAssignment(size_t NN, size_t rank, size_t NAF)
virtual size_t operator[](size_t index) override
virtual size_t size() override
virtual size_t offset() override
size_t max()
virtual bool contains(size_t i) override
virtual size_t index(size_t i) override
class DivAssignment : public Assignment
#include <assignment.hpp>

Specific assignment class which places tasks according to div logic.

Public Functions

DivAssignment(size_t NN, size_t rank, size_t NAF)
virtual size_t operator[](size_t index) override
virtual size_t size() override
virtual size_t offset() override
size_t max()
virtual bool contains(size_t i) override
virtual size_t index(size_t i) override