00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef SST_CORE_PART_RROBIN_H
00012 #define SST_CORE_PART_RROBIN_H
00013
00014 #include <sst/core/part/sstpart.h>
00015
00016 namespace SST {
00017 namespace Partition {
00018
00019 class SSTRoundRobinPartition : public SST::Partition::SSTPartitioner {
00020
00021 public:
00022 SSTRoundRobinPartition(int world_size);
00023
00024
00025
00026
00027
00028 void performPartition(PartitionGraph* graph);
00029
00030 bool requiresConfigGraph() { return false; }
00031 bool spawnOnAllRanks() { return false; }
00032
00033 static SSTPartitioner* allocate(int total_ranks, int my_rank, int verbosity) {
00034 return new SSTRoundRobinPartition(total_ranks);
00035 }
00036
00037 private:
00038 int world_size;
00039 static bool initialized;
00040 };
00041
00042 }
00043 }
00044 #endif //SST_CORE_PART_RROBIN_H