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...
 
integer function, public getmyslice ()
 Get the slice of the current process. More...
 
integer function, public getmycolumn ()
 Get the column of the current process. More...
 
integer function, public getmyrow ()
 Get the row of the current process. More...
 
subroutine, public destructprocessgrid ()
 Destruct the process grid.
 

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.

◆ getmycolumn()

integer function, public processgridmodule::getmycolumn ( )

Get the column of the current process.

Returns
column number of the current process.

◆ getmyrow()

integer function, public processgridmodule::getmyrow ( )

Get the row of the current process.

Returns
row number of the current process.

◆ getmyslice()

integer function, public processgridmodule::getmyslice ( )

Get the slice of the current process.

Returns
slice number of the current process.

◆ isroot()

logical function, public processgridmodule::isroot ( )

Check if the current process is the root process.

Returns
true if the current process is root.