A module for handling scratch memory for distributed matrix multiplication.
Construct Distributed Matrix Memory Pool object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Matrix_ps), | intent(in) | :: | matrix | The associated distributed sparse matrix. |
A constructed Matrix Memory Pool object.
Destruct a Distributed Matrix Memory Pool object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MatrixMemoryPool_p), | intent(inout) | :: | this | Distributed Matrix Memory Pool object to destroy. |
Checks if a given distributed memory pool has been validly allocated to handle the given parameters.
| Type | Intent | Optional | 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. |
True if the memory pool is valid.
A memory pool datatype that can be reused for matrix matrix multiplication. this is to prevent excessive alloc/dealloc.
| 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). |
| private pure function ConstructMatrixMemoryPool_p(matrix) | Construct Distributed Matrix Memory Pool object. |