The tuner base for vector-based item-tuners. More...
|Public Member Functions inherited from item_tuner< Internal::vec_item_table >|
|int||get_count (const Tag &tag) const|
|Allows specifying the number of gets to the given item. |
|int||consumed_on (const Tag &tag) const|
|Tells the scheduler on which process(es) this item is going to be consumed return process id where the item will be consumed (get), or CONSUMER_UNKNOWN (default) or std::vector<int>, containing all ids of consuming processes. To indicate that the consumer processes are unknown, return an empty vector. The vector must contain special values like CONSUMER_LOCAL. If not CnC::CONSUMER_UKNOWN (or empty vector), this declaration will overwrite what the step-tuner might declare in depends. Providing this method leads to the most efficient communication pattern for to getting the data to were it is needed. |
|int||produced_on (const Tag &tag) const|
|Tells the scheduler on which process(es) this item is going to be produced return process id where the item will be produced. If unknown return CnC::PRODUCER_UNKNOWN. return PRODUCER_LOCAL if local process is the owner. Implementing this method reduces the communication cost for locating and sending data. Implementing item_tuner::consumed_on is more efficient, but might be more complicated. Will be evaluated only if item_tuner::consumed_on returns CnC::CONSUMER_UNKNOWN. |
The tuner base for vector-based item-tuners.
Your tags must be convertable to and from size_t. You must provide the maximum value before accessing the collection (constructor or set_max). The runtime will allocate as many slots. Hence, use this only if your tags-space is dense, without a large offset and if it is not too large.