A module for handling scratch memory for distributed matrix multiplication.
Construct Distributed Matrix Memory Pool object.
| Type | Intent | Optional | 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. |
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). |