ALL 0.9.3
A Loadbalacing Library
|
The object oriented API is this object. It contains all relevant functions. More...
Public Member Functions | |
procedure | balance (this) |
Run loadbalancer and calculate new vertices. | |
procedure | finalize (this) |
Delete the loadbalance object. | |
procedure | get_dimension (this, dim) |
Get current dimension from loadbalancer. | |
procedure | get_gamma (this, gamma) |
Retrieve currently set gamma value of balancer. | |
procedure | get_length_of_work (this, length) |
Retrieve length of work array. | |
procedure | get_neighbors (this, neighbors) |
Retrieve list of neighboring ranks (must be correct size already) | |
procedure | get_number_of_neighbors (this, count) |
Retrieve number of neighbors (i.e. length of neighbors list) | |
procedure | get_number_of_vertices (this, n) |
Retrieve number of vertices for current vertices. | |
procedure | get_prev_vertices (this, vertices) |
Retrieve vertices from before loadbalancing. | |
procedure | get_vertices (this, vertices) |
Retrieve current vertices. | |
procedure | get_vertices_alloc (this, vertices) |
Same function as get_vertices, but takes an allocatable array, and resizes automatically. | |
procedure | get_work (this, work) |
Retrieve first element of work array. | |
procedure | get_work_array (this, work) |
Retrieve work array, which must already be the correct size. | |
procedure | init (this, method, dim, gamma) |
Initialises the loadbalancer. | |
procedure | print_vtk_outlines (this, step) |
Print VTK outlines (must be enabled in build step) | |
procedure | print_vtk_vertices (this, step) |
Print VTK domain vertices (must be enabled in build step) | |
procedure | set_communicator (this, comm) |
Set the MPI communicator with an mpi_f08 object. | |
procedure | set_gamma (this, gamma) |
Set gamma value for load balancer. | |
procedure | set_method_data_histgram (this, nbins) |
Set number of bins for histogram method. | |
procedure | set_min_domain_size (this, domain_size) |
Set a minimum domain size. | |
procedure | set_proc_grid_params (this, loc, ranks) |
Set the grid parameters for this process. | |
procedure | set_proc_tag (this, tag) |
Set process identifying tag for output. | |
procedure | set_sys_size (this, syssize) |
Set size of system, which is required for the histogram method. | |
procedure | set_vertices (this, vertices) |
Set new vertices. | |
procedure | set_work (this, work) |
Set the work of this process. | |
procedure | set_work_multi (this, work) |
Set multi dimensional work of this process. | |
procedure | setup (this) |
Set up the loadbalancer. | |
The object oriented API is this object. It contains all relevant functions.
Definition at line 222 of file ALL_module.F90.
procedure all_module::all_t::balance | ( | class(all_t), intent(in) | this | ) |
Run loadbalancer and calculate new vertices.
Definition at line 243 of file ALL_module.F90.
procedure all_module::all_t::finalize | ( | class(all_t), intent(in) | this | ) |
Delete the loadbalance object.
Definition at line 227 of file ALL_module.F90.
procedure all_module::all_t::get_dimension | ( | class(all_t), intent(in) | this, |
integer(c_int), intent(out) | dim ) |
Get current dimension from loadbalancer.
Definition at line 249 of file ALL_module.F90.
procedure all_module::all_t::get_gamma | ( | class(all_t), intent(in) | this, |
real(c_double), intent(out) | gamma ) |
Retrieve currently set gamma value of balancer.
Definition at line 244 of file ALL_module.F90.
procedure all_module::all_t::get_length_of_work | ( | class(all_t), intent(in) | this, |
integer(c_int), intent(out) | length ) |
Retrieve length of work array.
Definition at line 250 of file ALL_module.F90.
procedure all_module::all_t::get_neighbors | ( | class(all_t), intent(in) | this, |
integer(c_int), dimension(:), intent(out) | neighbors ) |
Retrieve list of neighboring ranks (must be correct size already)
Definition at line 254 of file ALL_module.F90.
procedure all_module::all_t::get_number_of_neighbors | ( | class(all_t), intent(in) | this, |
integer(c_int), intent(out) | count ) |
Retrieve number of neighbors (i.e. length of neighbors list)
Definition at line 253 of file ALL_module.F90.
procedure all_module::all_t::get_number_of_vertices | ( | class(all_t), intent(in) | this, |
integer(c_int), intent(out) | n ) |
Retrieve number of vertices for current vertices.
[out] | n | set to number of new vertices |
Definition at line 245 of file ALL_module.F90.
procedure all_module::all_t::get_prev_vertices | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:, :), intent(out) | vertices ) |
Retrieve vertices from before loadbalancing.
[out] | vertices | set to prev vertices, must be exact size (dim,n), unchecked! |
Definition at line 248 of file ALL_module.F90.
procedure all_module::all_t::get_vertices | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:, :), intent(out) | vertices ) |
Retrieve current vertices.
[out] | vertices | set to new vertices, must be exact size (dim,n) |
Definition at line 246 of file ALL_module.F90.
procedure all_module::all_t::get_vertices_alloc | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:, :), intent(inout), allocatable | vertices ) |
Same function as get_vertices, but takes an allocatable array, and resizes automatically.
[in,out] | vertices | set to new vertices, may be reallocated to fit |
Definition at line 247 of file ALL_module.F90.
procedure all_module::all_t::get_work | ( | class(all_t), intent(in) | this, |
real(c_double), intent(out) | work ) |
Retrieve first element of work array.
Definition at line 251 of file ALL_module.F90.
procedure all_module::all_t::get_work_array | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:), intent(out) | work ) |
Retrieve work array, which must already be the correct size.
Definition at line 252 of file ALL_module.F90.
procedure all_module::all_t::init | ( | class(all_t), intent(out) | this, |
integer, intent(in) | method, | ||
integer, intent(in) | dim, | ||
real(c_double), intent(in) | gamma ) |
Initialises the loadbalancer.
[out] | this | teh ALL object is returned |
[in] | method | Must be one of the ALL_* method values |
[in] | dim | dimensionality of system |
[in] | gamma | gamma value for load balancer (ignored for TENSOR and STAGGERED) |
Definition at line 226 of file ALL_module.F90.
procedure all_module::all_t::print_vtk_outlines | ( | class(all_t), intent(in) | this, |
integer(c_int), intent(in) | step ) |
Print VTK outlines (must be enabled in build step)
[in] | step | current step, used for filename |
Definition at line 256 of file ALL_module.F90.
procedure all_module::all_t::print_vtk_vertices | ( | class(all_t), intent(in) | this, |
integer(c_int), intent(in) | step ) |
Print VTK domain vertices (must be enabled in build step)
[in] | step | current step, used for filename |
Definition at line 257 of file ALL_module.F90.
procedure all_module::all_t::set_communicator | ( | class(all_t), intent(in) | this, |
integer, intent(in) | comm ) |
Set the MPI communicator with an mpi_f08 object.
Set the MPI communicator with an mpi
oder mpif.h
communicator
[in] | comm | MPI Communicator, not type checked! |
Definition at line 238 of file ALL_module.F90.
procedure all_module::all_t::set_gamma | ( | class(all_t), intent(in) | this, |
real(c_double), intent(in) | gamma ) |
Set gamma value for load balancer.
Definition at line 228 of file ALL_module.F90.
procedure all_module::all_t::set_method_data_histgram | ( | class(all_t), intent(in) | this, |
integer(c_int), dimension(3), intent(in) | nbins ) |
Set number of bins for histogram method.
[in] | nbins | Number of bins per dimension |
Definition at line 241 of file ALL_module.F90.
procedure all_module::all_t::set_min_domain_size | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(this%dim), intent(in) | domain_size ) |
Set a minimum domain size.
[in] | domain_size | minimum domain size |
Definition at line 231 of file ALL_module.F90.
procedure all_module::all_t::set_proc_grid_params | ( | class(all_t), intent(in) | this, |
integer, dimension(this%dim), intent(in) | loc, | ||
integer, dimension(this%dim), intent(in) | ranks ) |
Set the grid parameters for this process.
[in] | loc | index of domain in dim directions (0-indexed!) |
[in] | ranks | total number of domains in dim directions |
Definition at line 229 of file ALL_module.F90.
procedure all_module::all_t::set_proc_tag | ( | class(all_t), intent(in) | this, |
integer, intent(in) | tag ) |
Set process identifying tag for output.
[in] | tag | tag of local process, only output in VTK outlines |
Definition at line 230 of file ALL_module.F90.
procedure all_module::all_t::set_sys_size | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:), intent(in) | syssize ) |
Set size of system, which is required for the histogram method.
[in] | syssize | system size |
Definition at line 240 of file ALL_module.F90.
procedure all_module::all_t::set_vertices | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:, :), intent(in) | vertices ) |
Set new vertices.
[in] | vertices | vertices of domain, for n domains must have shape: (dim,n) |
Definition at line 234 of file ALL_module.F90.
procedure all_module::all_t::set_work | ( | class(all_t), intent(in) | this, |
real(c_double), intent(in) | work ) |
Set the work of this process.
[in] | work | work of this domain |
Definition at line 232 of file ALL_module.F90.
procedure all_module::all_t::set_work_multi | ( | class(all_t), intent(in) | this, |
real(c_double), dimension(:), intent(in) | work ) |
Set multi dimensional work of this process.
[in] | work | multi dimensional work of this domain |
Definition at line 233 of file ALL_module.F90.
procedure all_module::all_t::setup | ( | class(all_t), intent(in) | this | ) |
Set up the loadbalancer.
Definition at line 242 of file ALL_module.F90.