SENSEI
A frame work for generic in situ analytics
BlockPartitioner.h
1 #ifndef sensei_BlockPartitioner_h
2 #define sensei_BlockPartitioner_h
3 
4 #include "Partitioner.h"
5 
6 namespace sensei
7 {
8 
9 class BlockPartitioner;
10 using BlockPartitionerPtr = std::shared_ptr<sensei::BlockPartitioner>;
11 
12 /** The block partitioning mode will distribute blocks to a rank such that
13  * consecutive blocks share a rank.
14  */
15 class SENSEI_EXPORT BlockPartitioner : public sensei::Partitioner
16 {
17 public:
18  static sensei::BlockPartitionerPtr New()
19  { return BlockPartitionerPtr(new BlockPartitioner); }
20 
21  const char *GetClassName() override { return "BlockPartitioner"; }
22 
23  /** given an existing partitioning of data passed in the first MeshMetadata
24  * argument,return a new partittioning in the second MeshMetadata argument.
25  * distributes blocks to a rank such that consecutive blocks share a rank.
26  */
27  int GetPartition(MPI_Comm comm, const sensei::MeshMetadataPtr &in,
28  sensei::MeshMetadataPtr &out) override;
29 
30 protected:
31  BlockPartitioner() = default;
32  BlockPartitioner(const BlockPartitioner &) = default;
33 };
34 
35 }
36 
37 #endif
The block partitioning mode will distribute blocks to a rank such that consecutive blocks share a ran...
Definition: BlockPartitioner.h:15
represents the way data is partitioned for in-transit operation mode.
Definition: Partitioner.h:25
SENSEI.
Definition: ADIOS2AnalysisAdaptor.h:27