XGCa
Functions/Subroutines
my_mpi Module Reference

Functions/Subroutines

subroutine my_mpi_init (color)
 XGC common MPI init routine. More...
 
subroutine my_mpi_reduce (a, b, n)
 
subroutine my_mpi_allreduce (a, b, n)
 

Function/Subroutine Documentation

◆ my_mpi_allreduce()

subroutine my_mpi::my_mpi_allreduce ( real (kind=8), dimension(n), intent(inout)  a,
real (kind=8), dimension(n), intent(inout)  b,
integer, intent(in)  n 
)
Here is the caller graph for this function:

◆ my_mpi_init()

subroutine my_mpi::my_mpi_init ( integer, intent(in), value  color)

XGC common MPI init routine.

This function will call MPI_init followed by MPI_Comm_split. This is necessary to use Adios2 MPMD-style staging methods (e.g., InSituMPI). To distinguish XGC and staging applications, we need to provide an identifier (color). XGC applications (XGC1 and XGCa) will use "0", while others need to use non-zero values. After calling this function, it is recommended not to use MPI_COMM_WORLD directly. Instead, sml_comm_world or sml_comm should be used. E.g., PETSC should be initialized with sml_comm_world, not MPI_COMM_WORLD, as follows: call petsc_init(sml_comm_world, ierr)

Parameters
[in]coloridentifier, integer
Here is the call graph for this function:
Here is the caller graph for this function:

◆ my_mpi_reduce()

subroutine my_mpi::my_mpi_reduce ( real (kind=8), dimension(n), intent(inout)  a,
real (kind=8), dimension(n), intent(inout)  b,
integer, intent(in)  n 
)
Here is the caller graph for this function: