CP2K 2.4 (Revision 12889)
Functions

message_i_passing.f90 File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

subroutine mp_shift_im (msg, group, displ_in)
 Shift around the data in msg.
subroutine mp_shift_i (msg, group, displ_in)
 Shift around the data in msg.
subroutine mp_alltoall_i11v (sb, scount, sdispl, rb, rcount, rdispl, group)
 All-to-all data exchange, rank-1 data of different sizes.
subroutine mp_alltoall_i22v (sb, scount, sdispl, rb, rcount, rdispl, group)
 All-to-all data exchange, rank-2 data of different sizes.
subroutine mp_alltoall_i (sb, rb, count, group)
 All-to-all data exchange, rank 1 arrays, equal sizes.
subroutine mp_alltoall_i22 (sb, rb, count, group)
 All-to-all data exchange, rank-2 arrays, equal sizes.
subroutine mp_alltoall_i33 (sb, rb, count, group)
 All-to-all data exchange, rank-3 data with equal sizes.
subroutine mp_alltoall_i44 (sb, rb, count, group)
 All-to-all data exchange, rank 4 data, equal sizes.
subroutine mp_alltoall_i45 (sb, rb, count, group)
 All-to-all data exchange, rank-4 data to rank-5 data.
subroutine mp_alltoall_i34 (sb, rb, count, group)
 All-to-all data exchange, rank-3 data to rank-4 data.
subroutine mp_alltoall_i54 (sb, rb, count, group)
 All-to-all data exchange, rank-5 data to rank-4 data.
subroutine mp_send_i (msg, dest, tag, gid)
 Send one datum to another process.
subroutine mp_send_iv (msg, dest, tag, gid)
 Send rank-1 data to another process.
subroutine mp_recv_i (msg, source, tag, gid)
 Receive one datum from another process.
subroutine mp_recv_iv (msg, source, tag, gid)
 Receive rank-1 data from another process.
subroutine mp_bcast_i (msg, source, gid)
 Broadcasts a datum to all processes.
subroutine mp_bcast_iv (msg, source, gid)
 Broadcasts rank-1 data to all processes.
subroutine mp_bcast_im (msg, source, gid)
 Broadcasts rank-2 data to all processes.
subroutine mp_bcast_i3 (msg, source, gid)
 Broadcasts rank-3 data to all processes.
subroutine mp_sum_i (msg, gid)
 Sums a datum from all processes with result left on all processes.
subroutine mp_sum_iv (msg, gid)
 Element-wise sum of a rank-1 array on all processes.
subroutine mp_sum_im (msg, gid)
 Element-wise sum of a rank-2 array on all processes.
subroutine mp_sum_im3 (msg, gid)
 Element-wise sum of a rank-3 array on all processes.
subroutine mp_sum_im4 (msg, gid)
 Element-wise sum of a rank-4 array on all processes.
subroutine mp_sum_im5 (msg, gid)
 Element-wise sum of a rank-5 array on all processes.
subroutine mp_sum_im6 (msg, gid)
 Element-wise sum of a rank-6 array on all processes.
subroutine mp_sum_root_iv (msg, root, gid)
 Element-wise sum of data from all processes with result left only on one.
subroutine mp_sum_root_im (msg, root, gid)
 Element-wise sum of data from all processes with result left only on one.
subroutine mp_max_i (msg, gid)
 Finds the maximum of a datum with the result left on all processes.
subroutine mp_max_iv (msg, gid)
 Finds the element-wise maximum of a vector with the result left on all processes.
subroutine mp_min_i (msg, gid)
 Finds the minimum of a datum with the result left on all processes.
subroutine mp_min_iv (msg, gid)
 Finds the element-wise minimum of vector with the result left on all processes.
subroutine mp_scatter_iv (msg_scatter, msg, root, gid)
 Scatters data from one processes to all others.
subroutine mp_gather_i (msg, msg_gather, root, gid)
 Gathers a datum from all processes to one.
subroutine mp_gather_iv (msg, msg_gather, root, gid)
 Gathers data from all processes to one.
subroutine mp_gather_im (msg, msg_gather, root, gid)
 Gathers data from all processes to one.
subroutine mp_gatherv_iv (sendbuf, recvbuf, recvcounts, displs, root, comm)
 Gathers data from all processes to one.
subroutine mp_allgather_i (msgout, msgin, gid)
 Gathers a datum from all processes and all processes receive the same data.
subroutine mp_allgather_i12 (msgout, msgin, gid)
 Gathers vector data from all processes and all processes receive the same data.
subroutine mp_allgather_i23 (msgout, msgin, gid)
 Gathers matrix data from all processes and all processes receive the same data.
subroutine mp_allgather_i34 (msgout, msgin, gid)
 Gathers rank-3 data from all processes and all processes receive the same data.
subroutine mp_allgatherv_iv (msgout, msgin, rcount, rdispl, gid)
 Gathers vector data from all processes and all processes receive the same data.
subroutine mp_sum_scatter_iv (msgout, msgin, rcount, gid)
 Sums a vector and partitions the result among processes.
subroutine mp_sendrecv_iv (msgin, dest, msgout, source, comm)
 Sends and receives vector data.
subroutine mp_sendrecv_im2 (msgin, dest, msgout, source, comm)
 Sends and receives matrix data.
subroutine mp_sendrecv_im3 (msgin, dest, msgout, source, comm)
 Sends and receives rank-3 data.
subroutine mp_isendrecv_iv (msgin, dest, msgout, source, comm, send_request, recv_request, tag)
 Non-blocking send and receieve of a vector.
subroutine mp_isendrecv_im2 (msgin, dest, msgout, source, comm, send_request, recv_request, tag)
 Non-blocking send and receieve of a matrix.
subroutine mp_isend_iv (msgin, dest, comm, request, tag)
 Non-blocking send of vector data.
subroutine mp_isend_im2 (msgin, dest, comm, request, tag)
 Non-blocking send of matrix data.
subroutine mp_isend_im3 (msgin, dest, comm, request, tag)
 Non-blocking send of rank-3 data.
subroutine mp_irecv_iv (msgout, source, comm, request, tag)
 Non-blocking receive of vector data.
subroutine mp_irecv_im2 (msgout, source, comm, request, tag)
 Non-blocking receive of matrix data.
subroutine mp_irecv_im3 (msgout, source, comm, request, tag)
 Non-blocking send of rank-3 data.
subroutine mp_win_create_i (window, range, len, gid)
 Creates an MPI RMA window.
subroutine mp_rma_get_i (window, remote, offset, len, storage)
 Fetch access using RMA.
subroutine mp_rma_put_i (window, storage, len, remote, offset)
 Store access using RMA.
subroutine mp_allocate_i (DATA, len, stat)
 Allocates special parallel memory.
subroutine mp_deallocate_i (DATA, stat)
 Deallocates special parallel memory.

Function Documentation

subroutine mp_allgather_i ( INTEGER(KIND=int_4),intent(in)  msgout,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msgin,
INTEGER,intent(in)  gid 
)

Gathers a datum from all processes and all processes receive the same data.

Data size
All processes send equal-sized data
MPI mapping
mpi_allgather
Parameters:
[in]msgoutDatum to send
[out]msginReceived data
[in]gidMessage passing environment identifier

Definition at line 1544 of file message_i_passing.f90.

References timings::timeset().

Here is the call graph for this function:

subroutine mp_allgather_i12 ( INTEGER(KIND=int_4),dimension(:),intent(in)  msgout,
INTEGER(KIND=int_4),dimension(:, :),intent(out)  msgin,
INTEGER,intent(in)  gid 
)

Gathers vector data from all processes and all processes receive the same data.

Data size
All processes send equal-sized data
Ranks
The last rank counts the processes
MPI mapping
mpi_allgather
Parameters:
[in]msgoutRank-1 data to send
[out]msginReceived data
[in]gidMessage passing environment identifier

Definition at line 1587 of file message_i_passing.f90.

References timings::timeset().

Here is the call graph for this function:

subroutine mp_allgather_i23 ( INTEGER(KIND=int_4),dimension(:,:),intent(in)  msgout,
INTEGER(KIND=int_4),dimension(:, :, :),intent(out)  msgin,
INTEGER,intent(in)  gid 
)

Gathers matrix data from all processes and all processes receive the same data.

Parameters:
[in]msgoutRank-2 data to send
See also:
mp_allgather_i12

Definition at line 1623 of file message_i_passing.f90.

References timings::timeset().

Here is the call graph for this function:

subroutine mp_allgather_i34 ( INTEGER(KIND=int_4),dimension(:,:, :),intent(in)  msgout,
INTEGER(KIND=int_4),dimension(:, :, :, :),intent(out)  msgin,
INTEGER,intent(in)  gid 
)

Gathers rank-3 data from all processes and all processes receive the same data.

Parameters:
[in]msgoutRank-3 data to send
See also:
mp_allgather_i12

Definition at line 1659 of file message_i_passing.f90.

References timings::timeset().

Here is the call graph for this function:

subroutine mp_allgatherv_iv ( INTEGER(KIND=int_4),dimension( : ),intent(in)  msgout,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msgin,
INTEGER,dimension( : ),intent(in)  rcount,
INTEGER,dimension( : ),intent(in)  rdispl,
INTEGER,intent(in)  gid 
)

Gathers vector data from all processes and all processes receive the same data.

Data size
Processes can send different-sized data
Ranks
The last rank counts the processes
Offsets
Offsets are from 0
MPI mapping
mpi_allgather
Parameters:
[in]msgoutRank-1 data to send
[out]msginReceived data
[in]rcountSize of sent data for every process
[in]rdisplOffset of sent data for every process
[in]gidMessage passing environment identifier

Definition at line 1706 of file message_i_passing.f90.

References timings::timeset().

Here is the call graph for this function:

subroutine mp_allocate_i ( INTEGER(KIND=int_4),dimension(:),pointer  DATA,
INTEGER,intent(in)  len,
INTEGER,intent(out),optional  stat 
)

Allocates special parallel memory.

Author:
UB
Parameters:
[in]datapointer to integer array to allocate
[in]lennumber of integers to allocate
[out]stat(optional) allocation status result

Definition at line 2560 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i ( INTEGER(KIND=int_4),dimension(:),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank 1 arrays, equal sizes.

Index meaning
The first two indices specify the data while the last index counts
the processes
Sizes of ranks
All processes have the same data size.
MPI mapping
mpi_alltoall
Parameters:
[in]sbarray with data to send
[out]rbarray into which data is received
[in]countnumber of elements to send/receive (product of the extents of the first two dimensions)
[in]groupMessage passing environment identifier

Definition at line 234 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i11v ( INTEGER(KIND=int_4),dimension(:),intent(in)  sb,
INTEGER,dimension(:),intent(in)  scount,
INTEGER,dimension(:),intent(in)  sdispl,
INTEGER(KIND=int_4),dimension(:),intent(inout)  rb,
INTEGER,dimension(:),intent(in)  rcount,
INTEGER,dimension(:),intent(in)  rdispl,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-1 data of different sizes.

MPI mapping
mpi_alltoallv
Array sizes
The scount, rcount, and the sdispl and rdispl arrays have a size equal to the number of processes.
Offsets
Values in sdispl and rdispl start with 0.
Parameters:
[in]sbData to send
[in]scountData counts for data sent to other processes
[in]sdisplRespective data offsets for data sent to process
[in,out]rbBuffer into which to receive data
[in]rcountData counts for data received from other processes
[in]rdisplRespective data offsets for data received from other processes
[in]groupMessage passing environment identifier

Definition at line 139 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i22 ( INTEGER(KIND=int_4),dimension(:, :),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:, :),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-2 arrays, equal sizes.

See also:
mp_alltoall_i

Definition at line 273 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i22v ( INTEGER(KIND=int_4),dimension(:, :),intent(in)  sb,
INTEGER,dimension(:),intent(in)  scount,
INTEGER,dimension(:),intent(in)  sdispl,
INTEGER(KIND=int_4),dimension(:, :),intent(inout)  rb,
INTEGER,dimension(:),intent(in)  rcount,
INTEGER,dimension(:),intent(in)  rdispl,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-2 data of different sizes.

MPI mapping
mpi_alltoallv
See also:
mp_alltoall_i11v

Definition at line 182 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i33 ( INTEGER(KIND=int_4),dimension(:, :, :),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:, :, :),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-3 data with equal sizes.

See also:
mp_alltoall_i

Definition at line 312 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i34 ( INTEGER(KIND=int_4),dimension(:, :, :),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:, :, :, :),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-3 data to rank-4 data.

Note:
User must ensure size consistency.
See also:
mp_alltoall_i

Definition at line 434 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i44 ( INTEGER(KIND=int_4),dimension(:, :, :, :),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:, :, :, :),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank 4 data, equal sizes.

See also:
mp_alltoall_i

Definition at line 352 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i45 ( INTEGER(KIND=int_4),dimension(:, :, :, :),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:, :, :, :, :),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-4 data to rank-5 data.

Note:
User must ensure size consistency.
See also:
mp_alltoall_i

Definition at line 394 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_alltoall_i54 ( INTEGER(KIND=int_4),dimension(:, :, :, :, :),intent(in)  sb,
INTEGER(KIND=int_4),dimension(:, :, :, :),intent(out)  rb,
INTEGER,intent(in)  count,
INTEGER,intent(in)  group 
)

All-to-all data exchange, rank-5 data to rank-4 data.

Note:
User must ensure size consistency.
See also:
mp_alltoall_i

Definition at line 474 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_bcast_i ( INTEGER(KIND=int_4)  msg,
INTEGER  source,
INTEGER  gid 
)

Broadcasts a datum to all processes.

MPI mapping
mpi_bcast
Parameters:
[in]msgDatum to broadcast
[in]sourceProcesses which broadcasts
[in]gidMessage passing environment identifier

Definition at line 666 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_bcast_i3 ( INTEGER(KIND=int_4),dimension( :, :, : )  msg,
INTEGER  source,
INTEGER  gid 
)

Broadcasts rank-3 data to all processes.

Parameters:
[in]msgData to broadcast
See also:
mp_bcast_i1

Definition at line 759 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_bcast_im ( INTEGER(KIND=int_4),dimension( :, : )  msg,
INTEGER  source,
INTEGER  gid 
)

Broadcasts rank-2 data to all processes.

Parameters:
[in]msgData to broadcast
See also:
mp_bcast_i1

Definition at line 728 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_bcast_iv ( INTEGER(KIND=int_4),dimension( : )  msg,
INTEGER  source,
INTEGER  gid 
)

Broadcasts rank-1 data to all processes.

Parameters:
[in]msgData to broadcast
See also:
mp_bcast_i1

Definition at line 697 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_deallocate_i ( INTEGER(KIND=int_4),dimension(:),pointer  DATA,
INTEGER,intent(out),optional  stat 
)

Deallocates special parallel memory.

Author:
UB
Parameters:
[in]datapointer to special memory to deallocate

Definition at line 2602 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_gather_i ( INTEGER(KIND=int_4),intent(in)  msg,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msg_gather,
INTEGER,intent(in)  root,
INTEGER,intent(in)  gid 
)

Gathers a datum from all processes to one.

MPI mapping
mpi_gather
Parameters:
[in]msgDatum to send to root
[out]msg_gatherReceived data (on root)
[in]rootProcess which gathers the data
[in]gidMessage passing environment identifier

Definition at line 1373 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_gather_im ( INTEGER(KIND=int_4),dimension( :, : ),intent(in)  msg,
INTEGER(KIND=int_4),dimension( :, : ),intent(out)  msg_gather,
INTEGER,intent(in)  root,
INTEGER,intent(in)  gid 
)

Gathers data from all processes to one.

Data length
All data (msg) is equal-sized
MPI mapping
mpi_gather
Parameters:
[in]msgDatum to send to root
See also:
mp_gather_i

Definition at line 1451 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_gather_iv ( INTEGER(KIND=int_4),dimension( : ),intent(in)  msg,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msg_gather,
INTEGER,intent(in)  root,
INTEGER,intent(in)  gid 
)

Gathers data from all processes to one.

Data length
All data (msg) is equal-sized
MPI mapping
mpi_gather
Parameters:
[in]msgDatum to send to root
See also:
mp_gather_i

Definition at line 1412 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_gatherv_iv ( INTEGER(KIND=int_4),dimension(:),intent(in)  sendbuf,
INTEGER(KIND=int_4),dimension(:),intent(out)  recvbuf,
INTEGER,dimension(:),intent(in)  recvcounts,
INTEGER,dimension(:),intent(in)  displs,
INTEGER,intent(in)  root,
INTEGER,intent(in)  comm 
)

Gathers data from all processes to one.

Data length
Data can have different lengths
Offsets
Offsets start at 0
MPI mapping
mpi_gather
Parameters:
[in]sendbufData to send to root
[out]recvbufReceived data (on root)
[in]recvcountsSizes of data received from processes
[in]displsOffsets of data received from processes
[in]rootProcess which gathers the data
[in]commMessage passing environment identifier

Definition at line 1496 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_irecv_im2 ( INTEGER(KIND=int_4),dimension(:, :),pointer  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  request,
INTEGER,intent(in),optional  tag 
)

Non-blocking receive of matrix data.

Note:
The argument must be a pointer to be sure that we do not get temporaries. They must point to contiguous memory.
Author:
fawzi
History
2009-11-25 [UB] Made type-generic for templates
See also:
mp_isendrecv_iv
mp_irecv_iv

Definition at line 2307 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_irecv_im3 ( INTEGER(KIND=int_4),dimension(:, :, :),pointer  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  request,
INTEGER,intent(in),optional  tag 
)

Non-blocking send of rank-3 data.

Note:
The argument must be a pointer to be sure that we do not get temporaries. They must point to contiguous memory.
Author:
fawzi
History
9.2008 added _rm3 subroutine [Iain Bethune] (c) The Numerical Algorithms Group (NAG) Ltd, 2008 on behalf of the HECToR project 2009-11-25 [UB] Made type-generic for templates
See also:
mp_isendrecv_iv
mp_irecv_iv

Definition at line 2365 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_irecv_iv ( INTEGER(KIND=int_4),dimension(:),pointer  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  request,
INTEGER,intent(in),optional  tag 
)

Non-blocking receive of vector data.

Note:
The argument must be a pointer to be sure that we do not get temporaries. They must point to contiguous memory.
History
08.2003 created [f&j] 2009-11-25 [UB] Made type-generic for templates
See also:
mp_isendrecv_iv

Definition at line 2251 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_isend_im2 ( INTEGER(KIND=int_4),dimension(:, :),pointer  msgin,
INTEGER,intent(in)  dest,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  request,
INTEGER,intent(in),optional  tag 
)

Non-blocking send of matrix data.

Note:
The argument must be a pointer to be sure that we do not get temporaries. They must point to contiguous memory.
Author:
fawzi
History
2009-11-25 [UB] Made type-generic for templates
See also:
mp_isendrecv_iv
mp_isend_iv

Definition at line 2133 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_isend_im3 ( INTEGER(KIND=int_4),dimension(:, :, :),pointer  msgin,
INTEGER,intent(in)  dest,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  request,
INTEGER,intent(in),optional  tag 
)

Non-blocking send of rank-3 data.

Note:
The argument must be a pointer to be sure that we do not get temporaries. They must point to contiguous memory.
Author:
fawzi
History
9.2008 added _rm3 subroutine [Iain Bethune] (c) The Numerical Algorithms Group (NAG) Ltd, 2008 on behalf of the HECToR project 2009-11-25 [UB] Made type-generic for templates
See also:
mp_isendrecv_iv
mp_isend_iv

Definition at line 2192 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_isend_iv ( INTEGER(KIND=int_4),dimension(:),pointer  msgin,
INTEGER,intent(in)  dest,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  request,
INTEGER,intent(in),optional  tag 
)

Non-blocking send of vector data.

Note:
The argument must be a pointer to be sure that we do not get temporaries. They must point to contiguous memory.
History
08.2003 created [f&j]
See also:
mp_isendrecv_iv

Definition at line 2076 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_isendrecv_im2 ( INTEGER(KIND=int_4),dimension(:, :),pointer  msgin,
INTEGER,intent(in)  dest,
INTEGER(KIND=int_4),dimension(:, :),pointer  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  send_request,
INTEGER,intent(out)  recv_request,
INTEGER,intent(in),optional  tag 
)

Non-blocking send and receieve of a matrix.

Note:
The arguments must be pointers to be sure that we do not get temporaries. They must point to contiguous memory.
History
08.2003 created [f&j]
See also:
mp_isendrecv_iv

Definition at line 2002 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_isendrecv_iv ( INTEGER(KIND=int_4),dimension(:),pointer  msgin,
INTEGER,intent(in)  dest,
INTEGER(KIND=int_4),dimension(:),pointer  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm,
INTEGER,intent(out)  send_request,
INTEGER,intent(out)  recv_request,
INTEGER,intent(in),optional  tag 
)

Non-blocking send and receieve of a vector.

Implementation
Calls mpi_isend and mpi_irecv.
Note:
The arguments must be pointers to be sure that we do not get temporaries. They must point to contiguous memory.
History
11.2004 created [Joost VandeVondele]
Parameters:
[in]msginVector data to send
[in]destWhich process to send to
[out]msgoutReceive data into this pointer
[in]sourceProcess to receive from
[in]commMessage passing environment identifier
[out]send_requestRequest handle for the send
[out]recv_requestRequest handle for the receive
[in]tag(optional) tag to differentiate requests

Definition at line 1932 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_max_i ( INTEGER(KIND=int_4),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Finds the maximum of a datum with the result left on all processes.

MPI mapping
mpi_allreduce
Parameters:
[in,out]msgFind maximum among these data (input) and maximum (output)
[in]gidMessage passing environment identifier

Definition at line 1181 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_max_iv ( INTEGER(KIND=int_4),dimension( : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Finds the element-wise maximum of a vector with the result left on all processes.

Parameters:
[in,out]msgFind maximum among these data (input) and maximum (output)
See also:
mp_max_i

Definition at line 1216 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_min_i ( INTEGER(KIND=int_4),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Finds the minimum of a datum with the result left on all processes.

MPI mapping
mpi_allreduce
Parameters:
[in,out]msgFind minimum among these data (input) and maximum (output)
[in]gidMessage passing environment identifier

Definition at line 1256 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_min_iv ( INTEGER(KIND=int_4),dimension( : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Finds the element-wise minimum of vector with the result left on all processes.

MPI mapping
mpi_allreduce
Parameters:
[in,out]msgFind minimum among these data (input) and maximum (output)
See also:
mp_min_i

Definition at line 1293 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_recv_i ( INTEGER(KIND=int_4),intent(inout)  msg,
INTEGER,intent(inout)  source,
INTEGER,intent(inout)  tag,
INTEGER,intent(in)  gid 
)

Receive one datum from another process.

MPI mapping
mpi_send
Parameters:
[in,out]msgPlace received data into this variable
[in,out]sourceProcess to receieve from
[in,out]tagTransfer identifier
[in]gidMessage passing environment identifier

Definition at line 588 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_recv_iv ( INTEGER(KIND=int_4),dimension( : ),intent(inout)  msg,
INTEGER,intent(inout)  source,
INTEGER,intent(inout)  tag,
INTEGER,intent(in)  gid 
)

Receive rank-1 data from another process.

Parameters:
[in,out]msgPlace receieved data into this rank-1 array
See also:
mp_recv_i

Definition at line 626 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_rma_get_i ( TYPE(mp_window_type),intent(in)  window,
INTEGER,intent(in)  remote,
INTEGER,intent(in)  offset,
INTEGER,intent(in)  len,
INTEGER(KIND=int_4),dimension(:),pointer  storage 
)

Fetch access using RMA.

Author:
UB
Parameters:
[in]windowRMA access window
[in]remoteremote process
[in]offsetoffset in remote window (starting at 0)
[in]lenamount of data to fetch
[out]storageinteger storage of fetched data

Definition at line 2476 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_rma_put_i ( TYPE(mp_window_type),intent(in)  window,
INTEGER(KIND=int_4),dimension(:),pointer  storage,
INTEGER,intent(in)  len,
INTEGER,intent(in)  remote,
INTEGER,intent(in)  offset 
)

Store access using RMA.

Author:
UB
Parameters:
[in]windowRMA access window
[in]storageinteger data to store
[in]lenamount of data to store
[in]remoteremote process
[in]offsetoffset in remote window (starting at 0)

Definition at line 2518 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_scatter_iv ( INTEGER(KIND=int_4),dimension(:),intent(in)  msg_scatter,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msg,
INTEGER,intent(in)  root,
INTEGER,intent(in)  gid 
)

Scatters data from one processes to all others.

MPI mapping
mpi_scatter
Parameters:
[in]msg_scatterData to scatter (for root process)
[out]msgReceived data
[in]rootProcess which scatters data
[in]gidMessage passing environment identifier

Definition at line 1334 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_send_i ( INTEGER(KIND=int_4)  msg,
INTEGER  dest,
INTEGER  tag,
INTEGER  gid 
)

Send one datum to another process.

MPI mapping
mpi_send
Parameters:
[in]msgDum to send
[in]destDestination process
[in]tagTransfer identifier
[in]gidMessage passing environment identifier

Definition at line 519 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_send_iv ( INTEGER(KIND=int_4),dimension( : )  msg,
INTEGER  dest,
INTEGER  tag,
INTEGER  gid 
)

Send rank-1 data to another process.

Parameters:
[in]msgRank-1 data to send
See also:
mp_send_i

Definition at line 552 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sendrecv_im2 ( INTEGER(KIND=int_4),dimension( :, : ),intent(in)  msgin,
INTEGER,intent(in)  dest,
INTEGER(KIND=int_4),dimension( :, : ),intent(out)  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm 
)

Sends and receives matrix data.

See also:
mp_sendrecv_iv

Definition at line 1829 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sendrecv_im3 ( INTEGER(KIND=int_4),dimension( :, :, : ),intent(in)  msgin,
INTEGER,intent(in)  dest,
INTEGER(KIND=int_4),dimension( :, :, : ),intent(out)  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm 
)

Sends and receives rank-3 data.

See also:
mp_sendrecv_iv

Definition at line 1874 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sendrecv_iv ( INTEGER(KIND=int_4),dimension( : ),intent(in)  msgin,
INTEGER,intent(in)  dest,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msgout,
INTEGER,intent(in)  source,
INTEGER,intent(in)  comm 
)

Sends and receives vector data.

Parameters:
[in]msginData to send
[in]destProcess to send data to
[out]msgoutReceived data
[in]sourceProcess from which to receive
[in]commMessage passing environment identifier

Definition at line 1784 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_shift_i ( INTEGER(KIND=int_4),dimension( : ),intent(inout)  msg,
INTEGER,intent(in)  group,
INTEGER,intent(in),optional  displ_in 
)

Shift around the data in msg.

Example
msg will be moved from rank to rank+displ_in (in a circular way)
Limitations
* displ_in will be 1 by default (others not tested) * the message array needs to be the same size on all processes
Parameters:
[in,out]msgData to shift
[in]groupmessage passing environment identifier
[in]displ_indisplacements (?)

Definition at line 72 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_shift_im ( INTEGER(KIND=int_4),dimension( :, : ),intent(inout)  msg,
INTEGER,intent(in)  group,
INTEGER,intent(in),optional  displ_in 
)

Shift around the data in msg.

Example
msg will be moved from rank to rank+displ_in (in a circular way)
Limitations
* displ_in will be 1 by default (others not tested) * the message array needs to be the same size on all processes
Parameters:
[in,out]msgRank-2 data to shift
[in]groupmessage passing environment identifier
[in]displ_indisplacements (?)

Definition at line 12 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_i ( INTEGER(KIND=int_4),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Sums a datum from all processes with result left on all processes.

MPI mapping
mpi_allreduce
Parameters:
[in,out]msgDatum to sum (input) and result (output)
[in]gidMessage passing environment identifier

Definition at line 793 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_im ( INTEGER(KIND=int_4),dimension( :, : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Element-wise sum of a rank-2 array on all processes.

See also:
mp_sum_i
Parameters:
[in]msgMatrix to sum and result

Definition at line 866 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_im3 ( INTEGER(KIND=int_4),dimension( :, :, : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Element-wise sum of a rank-3 array on all processes.

See also:
mp_sum_i
Parameters:
[in]msgArary to sum and result

Definition at line 906 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_im4 ( INTEGER(KIND=int_4),dimension( :, :, :, : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Element-wise sum of a rank-4 array on all processes.

See also:
mp_sum_i
Parameters:
[in]msgArary to sum and result

Definition at line 948 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_im5 ( INTEGER(KIND=int_4),dimension( :, :, :, :, : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Element-wise sum of a rank-5 array on all processes.

See also:
mp_sum_i
Parameters:
[in]msgArary to sum and result

Definition at line 991 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_im6 ( INTEGER(KIND=int_4),dimension( :, :, :, :, :, : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Element-wise sum of a rank-6 array on all processes.

See also:
mp_sum_i
Parameters:
[in]msgArary to sum and result

Definition at line 1035 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_iv ( INTEGER(KIND=int_4),dimension( : ),intent(inout)  msg,
INTEGER,intent(in)  gid 
)

Element-wise sum of a rank-1 array on all processes.

See also:
mp_sum_i
Parameters:
[in,out]msgVector to sum and result

Definition at line 827 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_root_im ( INTEGER(KIND=int_4),dimension( :, : ),intent(inout)  msg,
INTEGER,intent(in)  root,
INTEGER,intent(in)  gid 
)

Element-wise sum of data from all processes with result left only on one.

Parameters:
[in,out]msgMatrix to sum (input) and (only on process root) result (output)
See also:
mp_sum_root_iv

Definition at line 1132 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_root_iv ( INTEGER(KIND=int_4),dimension( : ),intent(inout)  msg,
INTEGER,intent(in)  root,
INTEGER,intent(in)  gid 
)

Element-wise sum of data from all processes with result left only on one.

MPI mapping
mpi_reduce
Parameters:
[in,out]msgVector to sum (input) and (only on process root) result (output)
[in]gidMessage passing environment identifier

Definition at line 1085 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_sum_scatter_iv ( INTEGER(KIND=int_4),dimension( : ),intent(in)  msgout,
INTEGER(KIND=int_4),dimension( : ),intent(out)  msgin,
INTEGER,dimension( : ),intent(in)  rcount,
INTEGER,intent(in)  gid 
)

Sums a vector and partitions the result among processes.

Parameters:
[in]msgoutData to sum
[out]msginReceived portion of summed data
[in]rcountPartition sizes of the summed data for every process
[in]gidMessage passing environment identifier

Definition at line 1743 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function:

subroutine mp_win_create_i ( TYPE(mp_window_type),intent(out)  window,
INTEGER(KIND=int_4),dimension(:),pointer  range,
INTEGER,intent(in),optional  len,
INTEGER,intent(in)  gid 
)

Creates an MPI RMA window.

Author:
UB
Parameters:
[out]windowcreated window id
[in]rangewindow contents
[in]len(optional) window size
[in]gidmessage passing environment identifier

Definition at line 2420 of file message_i_passing.f90.

References dbcsr_machine::m_walltime(), and timings::timeset().

Here is the call graph for this function: