Default implementations of the item-tuner interface for item-collections. More...
Classes | |
| struct | table_type |
| Defines the type of the internal data store. More... | |
Public Member Functions | |
| template<typename Tag , typename Item , typename Coll > | |
| void | init_table (TT< Tag, Item, Coll > &stbl) const |
| Initialize the internal storage. | |
| template<typename Tag > | |
| int | get_count (const Tag &tag) const |
| Allows specifying the number of gets to the given item. | |
| template<typename Tag > | |
| int | consumed_on (const Tag &tag) const |
| Tells the scheduler on which process(es) this item is going to be consumed. | |
| template<typename Tag > | |
| int | produced_on (const Tag &tag) const |
| Tells the scheduler on which process(es) this item is going to be produced. | |
Default implementations of the item-tuner interface for item-collections.
Usually you will not need to use this directly for anything else than documentation and interface.
Definition at line 434 of file default_tuner.h.
| int consumed_on | ( | const Tag & | tag | ) | const [inline] |
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 where it is needed.
| tag | the tag which identifies the item |
Definition at line 481 of file default_tuner.h.
{
return CONSUMER_UNKNOWN;
}
| int get_count | ( | const Tag & | tag | ) | const [inline] |
Allows specifying the number of gets to the given item.
After get_count() many 'get()'s the item can be removed from the collection. By default, the item is not removed until the collection is deleted. Gets by the environment are ignored, use CnC::NO_GETCOUNT for items which are consumed by the environment.
| tag | the tag which identifies the item |
Definition at line 464 of file default_tuner.h.
{
return NO_GETCOUNT;
}
| void init_table | ( | TT< Tag, Item, Coll > & | stbl | ) | const [inline] |
Initialize the internal storage.
Can be used to configure the storage table. Called in the collection constructor.
Definition at line 452 of file default_tuner.h.
{}
| int produced_on | ( | const Tag & | tag | ) | const [inline] |
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
| tag | the tag which identifies the item |
Definition at line 495 of file default_tuner.h.
{
return PRODUCER_UNKNOWN;
}
1.7.6.1