This module provides an interface to allocate memory that is shared between different MPI jobs from a single communicator on the same node.
More...
|
subroutine, public | mpi_shared_memory_init (mpi_communicator, chunk_size) |
| initializes memory manager; can be called without MPI present. Does nothing if compiled without MPI More...
|
|
subroutine | allocate_shm_chunk_real () |
| internal helper routine that allocates chunks of shared MPI memory that can be carved out and distributed
|
|
subroutine | allocate_shared_memory_1dreal (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 1D real arrays More...
|
|
subroutine | allocate_shared_memory_2dreal (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 2D real arrays More...
|
|
subroutine | allocate_shared_memory_3dreal (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 3D real arrays More...
|
|
subroutine | allocate_shared_memory_4dreal (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 4D real arrays More...
|
|
subroutine | allocate_shm_chunk_cmplx () |
| internal helper routine that allocates chunks of shared MPI complex memory that can be carved out and distributed
|
|
subroutine | allocate_shared_memory_1dcmplx (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 1D complex arrays More...
|
|
subroutine | allocate_shared_memory_2dcmplx (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 2D complex arrays More...
|
|
subroutine | allocate_shared_memory_3dcmplx (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 3D complex arrays More...
|
|
subroutine | allocate_shared_memory_4dcmplx (fortran_array, mpi_win_loc, myrank, arrayshape) |
| specific implementation of above interface for 4D complex arrays More...
|
|
subroutine, public | deallocate_all_shared_memory () |
|
|
complex(kind=kind(0.d0)), dimension(:), pointer, save | shm_mem_chunk_cmplx |
|
real(kind=kind(0.d0)), dimension(:), pointer, save | shm_mem_chunk_real |
|
integer, dimension(:), allocatable, save | mpi_wins_real |
|
integer, dimension(:), allocatable, save | mpi_wins_cmplx |
|
integer, save | nodecomm |
|
integer, save | noderank |
|
integer, save | head_idx_cmplx |
|
integer, save | head_idx_real |
|
real(kind=kind(0.d0)), save | chunk_size_gb |
|
integer, save | num_chunks_real |
|
integer, save | num_chunks_cmplx |
|
integer(kind=8), dimension(1), save | chunk_size_real |
|
integer(kind=8), dimension(1), save | chunk_size_cmplx |
|
logical, save | initialized =.false. |
|
logical, save, public | use_mpi_shm =.false. |
|
logical, save | public |
|
logical, save | variable |
|
logical, save | to |
|
logical, save | query |
|
logical, save | if |
|
logical, save | shared |
|
logical, save | memory |
|
logical, save | module |
|
logical, save | is |
|
logical, save | active |
|
This module provides an interface to allocate memory that is shared between different MPI jobs from a single communicator on the same node.
- Author
- ALF-project