NTPoly
Functions/Subroutines | Variables
processgridmodule Module Reference

A module to manage the process grid. More...

Functions/Subroutines

subroutine, public constructprocessgrid (world_comm_, process_rows_, process_columns_, process_slices_, be_verbose_in)
 Construct the process grid. More...
 
logical function, public isroot ()
 Check if the current process is the root process. More...
 

Variables

integer, public total_processors
 total processors in the grid.
 
integer, public num_process_rows
 number of rows in the grid.
 
integer, public num_process_columns
 number of columns in the grid.
 
integer, public num_process_slices
 number of 2D slices in the grid.
 
integer, public slice_size
 the slice of a 2D slice. Identiy current process
 
integer, public my_slice
 which slice is the current process in.
 
integer, public my_row
 which row is the current process in.
 
integer, public my_column
 which column is the current process in. Ranks for communication
 
integer, public global_rank
 current process's rank amongst processes.
 
integer, public within_slice_rank
 rank for within slice communication.
 
integer, public between_slice_rank
 rank for between slice communication.
 
integer, public column_rank
 rank for within column communication.
 
integer, public row_rank
 rank for within row communication. Communicators for communication
 
integer, public global_comm
 communicator with every other process.
 
integer, public row_comm
 communicator within a row.
 
integer, public column_comm
 communicator within a column.
 
integer, public within_slice_comm
 communicator within a slice.
 
integer, public between_slice_comm
 communicator between slices.
 
integer, public grid_error
 stores errors from MPI calls.
 
integer, public rootid = 0
 Which rank is root? Blocked communication.
 
integer, public block_multiplier
 Block scaling factor.
 
integer, public number_of_blocks_columns
 number of column blocks.
 
integer, public number_of_blocks_rows
 number of row blocks.
 
integer, dimension(:), allocatable, public blocked_row_comm
 blocked communicator within a row.
 
integer, dimension(:), allocatable, public blocked_column_comm
 blocked communicator within a column.
 
integer, dimension(:,:), allocatable, public blocked_within_slice_comm
 blocked communicator within a slice.
 
integer, dimension(:,:), allocatable, public blocked_between_slice_comm
 blocked communicator between slices.
 

Detailed Description

A module to manage the process grid.

Function/Subroutine Documentation

◆ constructprocessgrid()

subroutine, public processgridmodule::constructprocessgrid ( integer(kind=c_int), intent(in)  world_comm_,
integer(kind=c_int), intent(in)  process_rows_,
integer(kind=c_int), intent(in)  process_columns_,
integer(kind=c_int), intent(in)  process_slices_,
logical(kind=c_bool), intent(in), optional  be_verbose_in 
)

Construct the process grid.

Parameters
[in]world_comm_a communicator that every process in the grid is a part of.
[in]process_rows_number of grid rows.
[in]process_columns_number of grid columns.
[in]process_slices_number of grid slices.
[in]be_verbose_inset true to print process grid info.

◆ isroot()

logical function, public processgridmodule::isroot ( )

Check if the current process is the root process.

Returns
true if the current process is root.