waLBerla 7.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
walberla::blockforest::GlobalLoadBalancing Class Reference

#include <GlobalLoadBalancing.h>

Classes

class  MetisConfiguration
 

Static Public Member Functions

template<typename BLOCK >
static uint_t balance (const std::vector< BLOCK * > &blocks, const uint_t sfcIterations, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const memory_t avgMemoryUtilization)
 
template<typename BLOCK >
static uint_t balanceSorted (const std::vector< BLOCK * > &blocks, const uint_t sfcIterations, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const memory_t avgMemoryUtilization)
 
template<typename BLOCK >
static uint_t balance (const std::vector< BLOCK * > &blocks, const uint_t sfcIterations, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const uint_t numberOfProcesses)
 
template<typename BLOCK >
static uint_t balanceSorted (const std::vector< BLOCK * > &blocks, const uint_t sfcIterations, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const uint_t numberOfProcesses)
 
template<typename BLOCK >
static uint_t minimizeProcesses (const std::vector< BLOCK * > &blocks, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const std::vector< workload_t > *processesWork=nullptr, const std::vector< memory_t > *processesMemory=nullptr)
 
template<typename BLOCK >
static uint_t maximizeMemoryUtilization (const std::vector< BLOCK * > &blocks, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const std::vector< workload_t > *processesWork=nullptr, const std::vector< memory_t > *processesMemory=nullptr)
 
template<typename BLOCK >
static uint_t optimizeWorkload (const std::vector< BLOCK * > &blocks, const uint_t sfcIterations, const memory_t memoryLimit, const MetisConfiguration< BLOCK > &metisConfig, const real_t workloadWeighting, const bool sortByLevel=false, const uint_t samples=10)
 
template<typename BLOCK >
static void prepareProcessReordering (const std::vector< BLOCK * > &blocks, std::vector< std::vector< uint_t > > &processNeighbors)
 
template<typename BLOCK >
static void reorderProcessesByBFS (std::vector< BLOCK * > &blocks, const std::vector< std::vector< uint_t > > &processNeighbors)
 

Static Private Member Functions

template<typename BLOCK >
static uint_t fixedWork (const std::vector< BLOCK * > &blocks, const workload_t workloadLimit, const memory_t memoryLimit, const std::vector< workload_t > *processesWork=nullptr, const std::vector< memory_t > *processesMemory=nullptr)
 
template<typename BLOCK >
static void checkForBetterWorkloadDistributation (const std::vector< BLOCK * > &blocks, const uint_t numberOfProcesses, const real_t sumWorkload, const real_t memoryUtilization, const real_t workloadWeighting, const real_t memoryWeighting, real_t &bestWeightedValue, std::vector< uint_t > &bestProcessMapping, uint_t &bestNumberOfProcesses)
 

Member Function Documentation

◆ balance() [1/2]

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::balance ( const std::vector< BLOCK * > & blocks,
const uint_t sfcIterations,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const memory_t avgMemoryUtilization )
inlinestatic

◆ balance() [2/2]

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::balance ( const std::vector< BLOCK * > & blocks,
const uint_t sfcIterations,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const uint_t numberOfProcesses )
static

◆ balanceSorted() [1/2]

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::balanceSorted ( const std::vector< BLOCK * > & blocks,
const uint_t sfcIterations,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const memory_t avgMemoryUtilization )
inlinestatic

◆ balanceSorted() [2/2]

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::balanceSorted ( const std::vector< BLOCK * > & blocks,
const uint_t sfcIterations,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const uint_t numberOfProcesses )
static

◆ checkForBetterWorkloadDistributation()

template<typename BLOCK >
void walberla::blockforest::GlobalLoadBalancing::checkForBetterWorkloadDistributation ( const std::vector< BLOCK * > & blocks,
const uint_t numberOfProcesses,
const real_t sumWorkload,
const real_t memoryUtilization,
const real_t workloadWeighting,
const real_t memoryWeighting,
real_t & bestWeightedValue,
std::vector< uint_t > & bestProcessMapping,
uint_t & bestNumberOfProcesses )
staticprivate

◆ fixedWork()

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::fixedWork ( const std::vector< BLOCK * > & blocks,
const workload_t workloadLimit,
const memory_t memoryLimit,
const std::vector< workload_t > * processesWork = nullptr,
const std::vector< memory_t > * processesMemory = nullptr )
staticprivate

◆ maximizeMemoryUtilization()

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::maximizeMemoryUtilization ( const std::vector< BLOCK * > & blocks,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const std::vector< workload_t > * processesWork = nullptr,
const std::vector< memory_t > * processesMemory = nullptr )
inlinestatic

◆ minimizeProcesses()

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::minimizeProcesses ( const std::vector< BLOCK * > & blocks,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const std::vector< workload_t > * processesWork = nullptr,
const std::vector< memory_t > * processesMemory = nullptr )
inlinestatic

◆ optimizeWorkload()

template<typename BLOCK >
uint_t walberla::blockforest::GlobalLoadBalancing::optimizeWorkload ( const std::vector< BLOCK * > & blocks,
const uint_t sfcIterations,
const memory_t memoryLimit,
const MetisConfiguration< BLOCK > & metisConfig,
const real_t workloadWeighting,
const bool sortByLevel = false,
const uint_t samples = 10 )
static

◆ prepareProcessReordering()

template<typename BLOCK >
void walberla::blockforest::GlobalLoadBalancing::prepareProcessReordering ( const std::vector< BLOCK * > & blocks,
std::vector< std::vector< uint_t > > & processNeighbors )
static

◆ reorderProcessesByBFS()

template<typename BLOCK >
void walberla::blockforest::GlobalLoadBalancing::reorderProcessesByBFS ( std::vector< BLOCK * > & blocks,
const std::vector< std::vector< uint_t > > & processNeighbors )
static

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