create_reshape_plans Subroutine

private subroutine create_reshape_plans(plans, backend, platform, helper, effort, force_effort, base_init_dtype, base_init_storage, base_dtype, base_storage, bricks, pencils)

Creates and allocates all reshape operation plans

This subroutine allocates and initializes plans for all four reshape operations: - X_BRICKS_TO_PENCILS: brick to pencil in X dimension (real space) - X_PENCILS_TO_BRICKS: pencil to brick in X dimension (real space) - Z_PENCILS_TO_BRICKS: pencil to brick in Z dimension (Fourier space) - Z_BRICKS_TO_PENCILS: brick to pencil in Z dimension (Fourier space)

Arguments

Type IntentOptional Attributes Name
type(reshape_container), intent(inout), allocatable :: plans(:)

Array of reshape plan containers to be allocated and initialized

type(dtfft_backend_t), intent(in) :: backend

Communication backend to use for reshape operations

type(dtfft_platform_t), intent(in) :: platform

Execution platform (HOST or CUDA)

type(backend_helper), intent(inout) :: helper

Backend helper for communication setup

type(dtfft_effort_t), intent(in) :: effort

dtFFT planner effort level

logical, intent(in) :: force_effort
type(MPI_Datatype), intent(in) :: base_init_dtype

Base MPI datatype for real space data

integer(kind=int64), intent(in) :: base_init_storage

Number of bytes needed to store single real element

type(MPI_Datatype), intent(in) :: base_dtype

Base MPI datatype for Fourier space data

integer(kind=int64), intent(in) :: base_storage

Number of bytes needed to store single complex element

type(pencil), intent(in) :: bricks(:)

Pencils describing brick data distribution

type(pencil), intent(in) :: pencils(:)

Array of pencil decompositions


Calls

proc~~create_reshape_plans~~CallsGraph proc~create_reshape_plans create_reshape_plans proc~allocate_plans allocate_plans proc~create_reshape_plans->proc~allocate_plans proc~create abstract_reshape_handle%create proc~create_reshape_plans->proc~create create_private create_private proc~create->create_private proc~get_reshape_type get_reshape_type proc~create->proc~get_reshape_type proc~get_transpose_type get_transpose_type proc~create->proc~get_transpose_type proc~is_valid_reshape_type is_valid_reshape_type proc~create->proc~is_valid_reshape_type proc~is_valid_transpose_type is_valid_transpose_type proc~create->proc~is_valid_transpose_type

Called by

proc~~create_reshape_plans~~CalledByGraph proc~create_reshape_plans create_reshape_plans proc~autotune_reshape_plan autotune_reshape_plan proc~autotune_reshape_plan->proc~create_reshape_plans proc~create~9 reshape_plan%create proc~create~9->proc~create_reshape_plans proc~create~9->proc~autotune_reshape_plan