Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Data Types | Modules | Functions/Subroutines | Variables
sll_m_collective.F90 File Reference

Go to the source code of this file.

Data Types

type  sll_t_collective_t
 Wrapper around the communicator. More...
 
interface  sll_o_collective_bcast
 Broadcasts a message from the process with rank "root" to all other processes of the communicator. More...
 
interface  sll_o_collective_gather
 Gathers together values from a group of processes. More...
 
interface  sll_o_collective_allgather
 Gathers data from all tasks and distribute the combined data to all tasks. More...
 
interface  sll_o_collective_allgatherv
 Gathers data from all tasks and deliver the combined data to all tasks. More...
 
interface  sll_collective_gatherv
 Gathers into specified locations from all processes in a group. More...
 
interface  sll_o_collective_scatter
 Sends data from one process to all other processes in a communicator. More...
 
interface  sll_collective_scatterv
 Scatters a buffer in parts to all processes in a communicator. More...
 
interface  sll_o_collective_allreduce
 Combines values from all processes and distributes the result back to all processes. More...
 
interface  sll_o_collective_reduce
 Reduces values on all processes to a single value. More...
 
interface  sll_o_collective_alltoall
 Sends data from all to all processes. More...
 
interface  sll_o_collective_alltoallv
 Sends data from all to all processes; each process may send a different amount of data and provide displacements for the input and output data. More...
 
interface  sll_o_collective_globalsum
 Performs a global sum and writes the result in the optional given node. More...
 

Modules

module  sll_m_collective
 Parallelizing facility.
 

Functions/Subroutines

subroutine sll_check_collective_ptr (ptr)
 Checks if the pointer ptr is associated to an object. More...
 
subroutine, public sll_s_test_mpi_error (ierr, descriptor)
 Checks the good execution of collective instruction. More...
 
logical function, public sll_f_collectives_are_same (col1, col2)
 
subroutine, public sll_s_boot_collective (required)
 Starts the paralell environment. More...
 
subroutine, public sll_s_allocate_collective ()
 
subroutine, public sll_s_set_communicator_collective (communicator_in)
 
subroutine, public sll_s_halt_collective ()
 Ends the paralell environment. More...
 
type(sll_t_collective_t) function, pointer, public sll_f_new_collective (parent, color, key)
 Creates new (wrapper around) communicators based on colors and keys. More...
 
subroutine sll_delete_collective (col)
 Marks the communicator object for deallocation. More...
 
integer(kind=i32) function sll_get_collective_comm (col)
 Gets the id (integer) of the communicator. More...
 
integer(kind=i32) function, public sll_f_get_collective_rank (col)
 Determines the rank of the calling process in the communicator. More...
 
integer(kind=i32) function sll_get_collective_color (col)
 Determines the color of the calling process in the communicator. More...
 
integer(kind=i32) function, public sll_f_get_collective_size (col)
 Determines the size of the group associated with a communicator. More...
 
type(sll_t_collective_t) function, pointer sll_get_collective_parent (col)
 Gets collective parent. More...
 
subroutine, public sll_s_collective_barrier (col)
 Blocks until all processes in the communicator have reached this routine. More...
 
subroutine sll_collective_bcast_logical (col, buffer, root)
 Broadcasts an array of type 'logical' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_bcast_int32 (col, buffer, root)
 Broadcasts an array of type 'sll_int32' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_bcast_int64 (col, buffer, root)
 Broadcasts an array of type 'sll_int64' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_bcast_real64 (col, buffer, root)
 Broadcasts an array of type 'sll_real64' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_bcast_real32 (col, buffer, size, root)
 Broadcasts an array of type 'sll_real32' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine, public sll_s_collective_bcast_real64 (col, buffer, size, root)
 Broadcasts an array of type 'sll_real64' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_bcast_comp64 (col, buffer, size, root)
 Broadcasts an array of type 'sll_comp64' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_bcast_comp32 (col, buffer, size, root)
 Broadcasts an array of type 'sll_comp32' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine, public sll_s_collective_bcast_3d_real64 (col, buffer, root)
 Broadcasts a 3d array of type 'sll_real64' from the process with rank "root" to all other processes of the communicator. More...
 
subroutine sll_collective_gather_real32 (col, send_buf, send_sz, root, rec_buf)
 Gathers together real values from a group of processes. More...
 
subroutine sll_collective_gather_real64 (col, send_buf, send_sz, root, rec_buf)
 
subroutine sll_collective_gather_logical (col, send_buf, root, rec_buf)
 
subroutine, public sll_s_collective_gatherv_real (col, send_buf, send_count, recvcnts, displs, root, rec_buf)
 Gathers real values into specified locations from all processes in a group. More...
 
subroutine, public sll_s_collective_gatherv_real64 (col, send_buf, send_count, recvcnts, displs, root, rec_buf)
 Gathers real64 values into specified locations from all processes in a group. More...
 
subroutine sll_collective_allgather_int (col, send_buf, send_sz, recv_buf, recv_sz)
 Gathers integer data from all tasks and distribute the combined data to all tasks. More...
 
subroutine sll_collective_allgather_real64 (col, send_buf, send_sz, recv_buf, recv_sz)
 
subroutine sll_collective_allgatherv_real32 (col, send_buf, send_cnt, rec_cnt, displs, rec_buf)
 Gathers real data from all tasks and deliver the combined data to all tasks. More...
 
subroutine, public sll_s_collective_allgatherv_real64 (col, send_buf, send_cnt, rec_cnt, displs, rec_buf)
 
subroutine sll_collective_scatter_real (col, send_buf, send_count, root, rec_buf)
 Sends data from one process to all other processes in a communicator. More...
 
subroutine sll_collective_scatter_real64 (col, send_buf, send_count, root, rec_buf)
 Sends data from one process to all other processes in a communicator. More...
 
subroutine sll_collective_scatter_int32 (col, send_buf, send_count, root, rec_buf)
 Sends data from one process to all other processes in a communicator. More...
 
subroutine, public sll_s_collective_scatterv_real (col, send_buf, send_count, displs, recv_count, root, rec_buf)
 Scatters a buffer in parts to all processes in a communicator. More...
 
subroutine, public sll_s_collective_allreduce_real32 (col, send_buf, count, op, rec_buf)
 Combines real values from all processes and distributes the result back to all processes. More...
 
subroutine sll_collective_allreduce_real64 (col, send_buf, count, op, rec_buf)
 Combines real values from all processes and distributes the result back to all processes. More...
 
subroutine sll_collective_allreduce_real64_2darray (col, send_buf, count, op, rec_buf)
 Combines real values from all processes and distributes the result back to all processes. More...
 
subroutine sll_collective_allreduce_comp64 (col, send_buf, count, op, rec_buf)
 Combines complex values from all processes and distributes the result back to all processes. More...
 
subroutine sll_collective_allreduce_comp32 (col, send_buf, count, op, rec_buf)
 
subroutine sll_collective_allreduce_int32 (col, send_buf, count, op, rec_buf)
 Combines complex values from all processes and distributes the result back to all processes. More...
 
subroutine, public sll_s_collective_allreduce_logical (col, send_buf, count, op, rec_buf)
 Combines logical values from all processes and distributes the result back to all processes. More...
 
subroutine, public sll_s_collective_allreduce_sum_3d_real64 (col, buffer)
 Sums real values from all processes and distributes the result back to all processes. More...
 
subroutine, public sll_s_collective_reduce_int (col, send_buf, size, op, root_rank, rec_buf)
 Reduces integer values on all processes to a single value. More...
 
subroutine, public sll_s_collective_reduce_real32 (col, send_buf, size, op, root_rank, rec_buf)
 Reduces real values on all processes to a single value. More...
 
subroutine, public sll_s_collective_reduce_real64 (col, send_buf, size, op, root_rank, rec_buf)
 
subroutine sll_collective_reduce_real64_2d (col, send_buf, size, op, root_rank, rec_buf)
 
subroutine sll_collective_reduce_comp64 (col, send_buf, size, op, root_rank, rec_buf)
 Reduces complex values on all processes to a single value. More...
 
subroutine sll_collective_reduce_comp32 (col, send_buf, size, op, root_rank, rec_buf)
 
subroutine, public sll_s_collective_reduce_logical (col, send_buf, size, op, root_rank, rec_buf)
 Reduces logical values on all processes to a single value. More...
 
subroutine, public sll_s_collective_alltoall_int (send_buf, send_count, recv_count, recv_buf, col)
 Sends integer data from all to all processes. More...
 
subroutine sll_collective_alltoall_double (send_buf, send_count, recv_count, recv_buf, col)
 
subroutine sll_collective_alltoall_complex_double (send_buf, send_count, recv_count, recv_buf, col)
 
subroutine, public sll_s_collective_alltoallv_real (send_buf, send_cnts, send_displs, recv_buf, recv_cnts, recv_displs, col)
 Sends real data from all to all processes; each process may send a different amount of data and provide displacements for the input and output data. More...
 
subroutine, public sll_s_collective_alltoallv_double (send_buf, send_cnts, send_displs, recv_buf, recv_cnts, recv_displs, col)
 
subroutine sll_collective_alltoallv_complex_double (send_buf, send_cnts, send_displs, recv_buf, recv_cnts, recv_displs, col)
 
subroutine, public sll_s_collective_alltoallv_int (send_buf, send_cnts, send_displs, recv_buf, recv_cnts, recv_displs, col)
 Sends integer data from all to all processes; each process may send a different amount of data and provide displacements for the input and output data. More...
 
subroutine, public sll_s_collective_alltoallv_int_simple (send_buf, send_cnts, recv_buf, col)
 
subroutine, public sll_s_collective_globalsum_array_real64 (col, summand, root_rank)
 Performs a global sum over an array and writes the result in the given node If no node in root_rank is given, perform an allreduce this means the sum is written to all nodes. More...
 
subroutine, public sll_s_collective_globalsum_array_comp64 (col, summand, root_rank)
 Performs a global sum over an array and writes the result in the given node If no node in root_rank is given, perform an allreduce this means the sum is written to all nodes. More...
 
subroutine sll_collective_globalsum_real64 (col, summand, root_rank)
 Performs a global sum and writes the result in the given node. More...
 
subroutine sll_collective_globalsum_array_real32 (col, summand, root_rank)
 Performs a global sum over an array and writes the result in the given node If no node in root_rank is given, perform an allreduce this means the sum is written to all nodes. More...
 
subroutine sll_collective_globalsum_array_comp32 (col, summand, root_rank)
 Performs a global sum over an array and writes the result in the given node If no node in root_rank is given, perform an allreduce this means the sum is written to all nodes. More...
 
subroutine sll_collective_globalsum_array_int32 (col, summand, root_rank)
 Performs a global sum over an array and writes the result in the given node If no node in root_rank is given, perform an allreduce this means the sum is written to all nodes. More...
 
subroutine sll_collective_globalsum_comp64 (col, summand, root_rank)
 Performs a global sum and writes the result in the given node. More...
 
subroutine sll_collective_globalsum_int32 (col, summand, root_rank)
 Performs a global sum and writes the result in the given node. More...
 
subroutine sll_collective_globalsum_comp32 (col, summand, root_rank)
 Performs a global sum and writes the result in the given node. More...
 
subroutine sll_collective_globalsum_real32 (col, summand, root_rank)
 Performs a global sum and writes the result in the given node. More...
 
type(sll_t_collective_t) function, pointer, public sll_f_create_collective (comm)
 Function to derive a "collective" from a plain MPI communicator,. More...
 

Variables

type(sll_t_collective_t), pointer, public sll_v_world_collective
 Control of subset assignment. Processes with the same color are in the same new communicator. More...
 
    Report Typos and Errors