26#include <arccore/message_passing/Messages.h>
35using namespace Arccore;
36using namespace Arccore::MessagePassing;
44 const Integer localOffset = dist.
offset();
54 const Integer localOffset = dist.
rowOffset();
62 Integer localOffset, IMessagePassingMng* parallel_mng)
66 const Integer block_size = all_blocks_sizes.find(i + localOffset).value();
72 const bool is_parallel = (parallel_mng != NULL) && (parallel_mng->commSize() > 1);
76 Arccore::UniqueArray<Arccore::Integer> local_sizes(parallel_mng->commSize());
77 Arccore::MessagePassing::mpAllGather(parallel_mng,
79 for (Integer i = 0; i < parallel_mng->commRank(); ++i)
Computes a matrix distribution.
Arccore::Integer localRowSize() const
Get the local row size.
Arccore::Integer rowOffset() const
Get the row offset.
Arccore::MessagePassing::IMessagePassingMng * parallelMng() const
Get the parallel manager.
Arccore::Integer m_local_scalarized_size
Scalarized local size.
Arccore::Integer offset() const
Get the "scalarized" offset.
void compute(const VBlock::ValuePerBlock &all_blocks_sizes, Arccore::Integer local_size, Arccore::Integer local_offset, Arccore::MessagePassing::IMessagePassingMng *parallel_mng)
Compute the actual sizes and offset of variable block size algebraic elements.
Arccore::Integer m_global_scalarized_size
Scalarized global size.
Arccore::Integer m_scalarized_offset
Scalarized offset.
VBlockSizes(const VBlock &block, const VectorDistribution &dist)
Constructor for vectors variable blocks.
Arccore::Integer globalSize() const
Get the "scalarized" global size.
Arccore::Integer localSize() const
Get the "scalarized" local size.
Variable size block elements for block matrices.
const ValuePerBlock & blockSizes() const
Get the size of all blocks.
VMap< Arccore::Integer, Arccore::Integer > ValuePerBlock
Type of the size of each block.
Computes a vector distribution.
Arccore::Integer offset() const
Get the offset.
Arccore::Integer localSize() const
Get the local size.
Arccore::MessagePassing::IMessagePassingMng * parallelMng() const
Get the parallel manager.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --