SST  8.0.0
StructuralSimulationToolkit
sstpart.h
1 // Copyright 2009-2018 NTESS. Under the terms
2 // of Contract DE-NA0003525 with NTESS, the U.S.
3 // Government retains certain rights in this software.
4 //
5 // Copyright (c) 2009-2018, NTESS
6 // All rights reserved.
7 //
8 // This file is part of the SST software package. For license
9 // information, see the LICENSE file in the top level directory of the
10 // distribution.
11 
12 
13 #ifndef SST_CORE_PART_BASE
14 #define SST_CORE_PART_BASE
15 
16 #include <sst/core/rankInfo.h>
17 #include <sst/core/warnmacros.h>
18 
19 #include <map>
20 
21 namespace SST {
22 
23 class ConfigGraph;
24 class PartitionGraph;
25 
26 namespace Partition {
27 
28 /**
29  * Base class for Partitioning graphs
30  */
32 {
33 
34 public:
35 
36  SSTPartitioner() {}
37  virtual ~SSTPartitioner() {}
38 
39  /** Function to be overridden by subclasses
40  *
41  * Performs the partitioning of the Graph using the PartitionGraph object.
42  *
43  * Result of this function is that every ConfigComponent in
44  * graph has a Rank applied to it.
45  */
46  virtual void performPartition(PartitionGraph* UNUSED(graph)) {}
47 
48  /** Function to be overridden by subclasses
49  *
50  * Performs the partitioning of the Graph using the ConfigGraph
51  * object. The consequence of using ConfigGraphs is that no-cut
52  * links are not supported.
53  *
54  * Result of this function is that every ConfigComponent in
55  * graph has a Rank applied to it.
56  */
57  virtual void performPartition(ConfigGraph* UNUSED(graph)) {}
58 
59  virtual bool requiresConfigGraph() { return false; }
60 
61  virtual bool spawnOnAllRanks() { return false; }
62  // virtual bool supportsPartialPartitionInput() { return false; }
63 
64 
65 };
66 
67 }
68 }
69 
70 #endif
Definition: configGraph.h:490
A Configuration Graph A graph representing Components and Links.
Definition: configGraph.h:294
virtual void performPartition(ConfigGraph *UNUSED(graph))
Function to be overridden by subclasses.
Definition: sstpart.h:57
Base class for Partitioning graphs.
Definition: sstpart.h:31
virtual void performPartition(PartitionGraph *UNUSED(graph))
Function to be overridden by subclasses.
Definition: sstpart.h:46