QuIDS: Quantum Irregular Dynamic Simulator
Namespaces | Data Structures | Typedefs | Functions | Variables
quids::mpi Namespace Reference

mpi implementation namespace More...

Namespaces

namespace  utils
 QuIDS mpi utility function and variable namespace.
 

Data Structures

class  mpi_iteration
 mpi iteration (wave function) class, ineriting from the quids::iteration class More...
 
class  mpi_symbolic_iteration
 symbolic mpi iteration (computation intermediary) More...
 

Typedefs

typedef class mpi_iteration mpi_it_t
 mpi iteration type
 
typedef class mpi_symbolic_iteration mpi_sy_it_t
 mpi symbolic iteration type
 

Functions

void simulate (mpi_it_t &iteration, quids::rule_t const *rule, mpi_it_t &next_iteration, mpi_sy_it_t &symbolic_iteration, MPI_Comm communicator, size_t max_num_object=0, quids::debug_t mid_step_function=[](const char *){})
 function to apply a dynamic to a wave function distributed accross multiple nodes More...
 

Variables

size_t min_equalize_size = MIN_EQUALIZE_SIZE
 minimum number of object that should be attained (in at least one node) before equalizing (load-sharing) bewteen nodes.
 
float equalize_inbalance = EQUALIZE_INBALANCE
 maximum imbalance between nodes (max_obj - avg_obj)/max_obj allowed before equalizing.
 
float min_equalize_step = MIN_INBALANCE_STEP
 minimum jump in equalize before breaking
 
bool equalize_children = true
 if true, equalize the number of children. Otherwise equalize the number of objects.
 

Detailed Description

mpi implementation namespace

Function Documentation

◆ simulate()

void quids::mpi::simulate ( mpi_it_t iteration,
quids::rule_t const *  rule,
mpi_it_t next_iteration,
mpi_sy_it_t symbolic_iteration,
MPI_Comm  communicator,
size_t  max_num_object = 0,
quids::debug_t  mid_step_function = [](const char*){} 
)

function to apply a dynamic to a wave function distributed accross multiple nodes

Parameters
[in]iterationwavefunction that the dynamic will be applied to.
[in]ruledynamic that will be applied.
[out]next_iterationwave function that will be overwritten to then contained the final wave function.
[out]symbolic_iterationsymbolic iteration that will be used.
[in]communicatorMPI communcator.
[in]max_num_objectmaximum number of objects to be kept per node, -1 means no maximum, 0 means automaticaly finding the maximum ammount of objects that can be kept in memory.
[in]mid_step_functiondebuging function called between steps.