SST  9.0.0
StructuralSimulationToolkit
SST::IMPL::Partition::SSTLinearPartition Class Reference

Performs a linear partition scheme of an SST simulation configuration. More...

#include <linpart.h>

Inheritance diagram for SST::IMPL::Partition::SSTLinearPartition:
SST::Partition::SSTPartitioner

Public Member Functions

 SSTLinearPartition (RankInfo rankCount, RankInfo my_rank, int verbosity)
 Creates a new linear partition scheme. More...
 
void performPartition (PartitionGraph *graph) override
 Performs a partition of an SST simulation configuration. More...
 
void performPartition (ConfigGraph *graph) override
 Function to be overridden by subclasses. More...
 
bool requiresConfigGraph () override
 
bool spawnOnAllRanks () override
 
- Public Member Functions inherited from SST::Partition::SSTPartitioner
virtual void performPartition (PartitionGraph *UNUSED(graph))
 Function to be overridden by subclasses. More...
 
virtual void performPartition (ConfigGraph *UNUSED(graph))
 Function to be overridden by subclasses. More...
 

Data Fields

SST_ELI_REGISTER_PARTITIONER(SSTLinearPartition,"sst","linear",
SST_ELI_ELEMENT_VERSION(1,
0, 0),"Partitions components
by dividing Component ID space
into roughly equal portions.
Components with sequential IDs
will be placed close together.")
protected Output
partOutput
 Number of ranks in the simulation. More...
 

Detailed Description

Performs a linear partition scheme of an SST simulation configuration.

In this scheme a list of components (supplied as a graph) are grouped by slicing the list into approximately equal parts. A "part" is generated for each MPI rank performing the simulation. This means Components with sequential ids will be placed close together. In general this scheme provides a very effective partition for most parallel simulations which generate man similar components of interest close together in the input Python configuration. It is also very fast to compute a linear partition scheme. For more aggressive partition schemes users should try either a simple or Zoltan-based partitioner.

Constructor & Destructor Documentation

SSTLinearPartition::SSTLinearPartition ( RankInfo  rankCount,
RankInfo  my_rank,
int  verbosity 
)

Creates a new linear partition scheme.

Parameters
mpiRankCountNumber of MPI ranks in the simulation
verbosityThe level of information to output

References SST::Output::STDOUT.

Member Function Documentation

void SSTLinearPartition::performPartition ( PartitionGraph graph)
overridevirtual

Performs a partition of an SST simulation configuration.

Parameters
graphThe simulation configuration to partition

Reimplemented from SST::Partition::SSTPartitioner.

void SST::IMPL::Partition::SSTLinearPartition::performPartition ( ConfigGraph graph)
inlineoverridevirtual

Function to be overridden by subclasses.

Performs the partitioning of the Graph using the ConfigGraph object. The consequence of using ConfigGraphs is that no-cut links are not supported.

Result of this function is that every ConfigComponent in graph has a Rank applied to it.

Reimplemented from SST::Partition::SSTPartitioner.

References SST::Partition::SSTPartitioner::performPartition().

Field Documentation

SST_ELI_REGISTER_PARTITIONER ( SSTLinearPartition, "sst", "linear", SST_ELI_ELEMENT_VERSION(1,0,0), "Partitions components by dividing Component ID space into roughly equal portions. Components with sequential IDs will be placed close together.") protected Output* SST::IMPL::Partition::SSTLinearPartition::partOutput

Number of ranks in the simulation.

Output object to print partitioning information


The documentation for this class was generated from the following files: