PMatrixMemoryPoolModule Module

A module for handling scratch memory for distributed matrix multiplication.



Contents


Interfaces

public interface ConstructMatrixMemoryPool

  • private pure subroutine ConstructMatrixMemoryPool_p(this, matrix)

    Construct Distributed Matrix Memory Pool object.

    Arguments

    Type IntentOptional Attributes Name
    type(MatrixMemoryPool_p), intent(inout) :: this

    A constructed Matrix Memory Pool object.

    type(Matrix_ps), intent(in) :: matrix

    The associated distributed sparse matrix.

public interface DestructMatrixMemoryPool

  • private pure subroutine DestructMatrixMemoryPool_p(this)

    Destruct a Distributed Matrix Memory Pool object.

    Arguments

    Type IntentOptional Attributes Name
    type(MatrixMemoryPool_p), intent(inout) :: this

    Distributed Matrix Memory Pool object to destroy.

public interface CheckMemoryPoolValidity

  • private pure function CheckMemoryPoolValidity_p(this, matrix) result(isvalid)

    Checks if a given distributed memory pool has been validly allocated to handle the given parameters.

    Arguments

    Type IntentOptional Attributes Name
    type(MatrixMemoryPool_p), intent(in) :: this

    The memory pool to check.

    type(Matrix_ps), intent(in) :: matrix

    The associated matrix to check against.

    Return Value logical

    True if the memory pool is valid.


Derived Types

type, public ::  MatrixMemoryPool_p

A memory pool datatype that can be reused for matrix matrix multiplication. this is to prevent excessive alloc/dealloc.

Components

Type Visibility Attributes Name Initial
type(MatrixMemoryPool_lr), public, DIMENSION(:,:), ALLOCATABLE :: grid_r

Grid of local pools.

type(MatrixMemoryPool_lc), public, DIMENSION(:,:), ALLOCATABLE :: grid_c

Grid of local pools (complex).