QUDA
1.0.0
|
Go to the source code of this file.
Functions | |
void | comm_init (int ndim, const int *dims, QudaCommsMap rank_from_coords, void *map_data) |
Initialize the communications, implemented in comm_single.cpp, comm_qmp.cpp, and comm_mpi.cpp. More... | |
int | comm_rank (void) |
int | comm_size (void) |
void | comm_gather_hostname (char *hostname_recv_buf) |
Gather all hostnames. More... | |
void | comm_gather_gpuid (int *gpuid_recv_buf) |
Gather all GPU ids. More... | |
MsgHandle * | comm_declare_send_displaced (void *buffer, const int displacement[], size_t nbytes) |
MsgHandle * | comm_declare_receive_displaced (void *buffer, const int displacement[], size_t nbytes) |
MsgHandle * | comm_declare_strided_send_displaced (void *buffer, const int displacement[], size_t blksize, int nblocks, size_t stride) |
MsgHandle * | comm_declare_strided_receive_displaced (void *buffer, const int displacement[], size_t blksize, int nblocks, size_t stride) |
void | comm_free (MsgHandle *&mh) |
void | comm_start (MsgHandle *mh) |
void | comm_wait (MsgHandle *mh) |
int | comm_query (MsgHandle *mh) |
void | comm_allreduce (double *data) |
void | comm_allreduce_max (double *data) |
void | comm_allreduce_min (double *data) |
void | comm_allreduce_array (double *data, size_t size) |
void | comm_allreduce_max_array (double *data, size_t size) |
void | comm_allreduce_int (int *data) |
void | comm_allreduce_xor (uint64_t *data) |
void | comm_broadcast (void *data, size_t nbytes) |
void | comm_barrier (void) |
void | comm_abort (int status) |
void comm_abort | ( | int | status | ) |
Definition at line 67 of file comm_single.cpp.
void comm_allreduce | ( | double * | data | ) |
Definition at line 49 of file comm_single.cpp.
Referenced by quda::forceRecord(), quda::clover::FieldOrder< Float, nColor, nSpin, order >::norm1(), quda::gauge::FieldOrder< Float, nColor, nSpinCoarse, order, native_ghost, storeFloat, use_tex >::norm1(), norm2(), quda::clover::FieldOrder< Float, nColor, nSpin, order >::norm2(), quda::colorspinor::FieldOrderCB< Float, coarseSpin, coarseColor, 1, csOrder, Float, ghostFloat >::norm2(), quda::gauge::FieldOrder< Float, nColor, nSpinCoarse, order, native_ghost, storeFloat, use_tex >::norm2(), and reduceDouble().
void comm_allreduce_array | ( | double * | data, |
size_t | size | ||
) |
Definition at line 55 of file comm_single.cpp.
Referenced by quda::plaquette(), and reduceDoubleArray().
void comm_allreduce_int | ( | int * | data | ) |
Definition at line 59 of file comm_single.cpp.
Referenced by comm_peer2peer_enabled_global(), quda::compareSpinor(), hisq_force_test(), main(), and TEST().
void comm_allreduce_max | ( | double * | data | ) |
Definition at line 51 of file comm_single.cpp.
Referenced by quda::clover::FieldOrder< Float, nColor, nSpin, order >::abs_max(), quda::colorspinor::FieldOrderCB< Float, coarseSpin, coarseColor, 1, csOrder, Float, ghostFloat >::abs_max(), quda::gauge::FieldOrder< Float, nColor, nSpinCoarse, order, native_ghost, storeFloat, use_tex >::abs_max(), and reduceMaxDouble().
void comm_allreduce_max_array | ( | double * | data, |
size_t | size | ||
) |
Definition at line 57 of file comm_single.cpp.
Referenced by quda::forceRecord().
void comm_allreduce_min | ( | double * | data | ) |
Definition at line 53 of file comm_single.cpp.
Referenced by quda::clover::FieldOrder< Float, nColor, nSpin, order >::abs_min(), and quda::gauge::FieldOrder< Float, nColor, nSpinCoarse, order, native_ghost, storeFloat, use_tex >::abs_min().
void comm_allreduce_xor | ( | uint64_t * | data | ) |
Definition at line 61 of file comm_single.cpp.
Referenced by quda::Checksum().
void comm_barrier | ( | void | ) |
Definition at line 65 of file comm_single.cpp.
Referenced by quda::LatticeField::allocateGhostBuffer(), comm_gdr_blacklist(), comm_peer2peer_init(), quda::LatticeField::createComms(), quda::LatticeField::destroyComms(), quda::LatticeField::destroyIPCComms(), dslashCUDA(), and quda::MG::verify().
void comm_broadcast | ( | void * | data, |
size_t | nbytes | ||
) |
broadcast from rank 0
Definition at line 63 of file comm_single.cpp.
Referenced by quda::broadcastTuneCache(), and comm_init_common().
MsgHandle* comm_declare_receive_displaced | ( | void * | buffer, |
const int | displacement[], | ||
size_t | nbytes | ||
) |
Create a persistent message handler for a relative receive
buffer | Buffer into which message will be received |
dim | Dimension from message will be received |
dir | Direction from messaged with be recived (0 - backwards, 1 forwards) |
nbytes | Size of message in bytes |
Declare a message handle for receiving from a node displaced in (x,y,z,t) according to "displacement"
Definition at line 30 of file comm_single.cpp.
Referenced by comm_declare_receive_relative_(), and exchange_sitelink_diag().
MsgHandle* comm_declare_send_displaced | ( | void * | buffer, |
const int | displacement[], | ||
size_t | nbytes | ||
) |
Create a persistent message handler for a relative send
buffer | Buffer from which message will be sent |
dim | Dimension in which message will be sent |
dir | Direction in which messaged with be sent (0 - backwards, 1 forwards) |
nbytes | Size of message in bytes |
Declare a message handle for sending to a node displaced in (x,y,z,t) according to "displacement"
Definition at line 27 of file comm_single.cpp.
Referenced by comm_declare_send_relative_(), and exchange_sitelink_diag().
MsgHandle* comm_declare_strided_receive_displaced | ( | void * | buffer, |
const int | displacement[], | ||
size_t | blksize, | ||
int | nblocks, | ||
size_t | stride | ||
) |
Create a persistent strided message handler for a displaced receive
buffer | Buffer into which message will be received |
displacement | Array of offsets specifying the relative node from which we are receiving |
blksize | Size of block in bytes |
nblocks | Number of blocks |
stride | Stride between blocks in bytes |
Declare a message handle for receiving from a node displaced in (x,y,z,t) according to "displacement"
Declare a message handle for strided receiving from a node displaced in (x,y,z,t) according to "displacement"
Definition at line 37 of file comm_single.cpp.
Referenced by comm_declare_strided_receive_relative_().
MsgHandle* comm_declare_strided_send_displaced | ( | void * | buffer, |
const int | displacement[], | ||
size_t | blksize, | ||
int | nblocks, | ||
size_t | stride | ||
) |
Create a persistent strided message handler for a displaced send
buffer | Buffer from which message will be sent |
displacement | Array of offsets specifying the relative node to which we are sending |
blksize | Size of block in bytes |
nblocks | Number of blocks |
stride | Stride between blocks in bytes |
Declare a message handle for sending to a node displaced in (x,y,z,t) according to "displacement"
Declare a message handle for strided sending to a node displaced in (x,y,z,t) according to "displacement"
Definition at line 33 of file comm_single.cpp.
Referenced by comm_declare_strided_send_relative_().
void comm_free | ( | MsgHandle *& | mh | ) |
Definition at line 41 of file comm_single.cpp.
Referenced by quda::LatticeField::createIPCComms(), quda::LatticeField::destroyComms(), quda::LatticeField::destroyIPCComms(), do_exchange_cpu_staple(), quda::GaugeField::exchange(), quda::ColorSpinorField::exchange(), exchange_cpu_sitelink_ex(), exchange_sitelink(), exchange_sitelink_diag(), and quda::cpuGaugeField::exchangeExtendedGhost().
void comm_gather_gpuid | ( | int * | gpuid_recv_buf | ) |
Gather all GPU ids.
[out] | gpuid_recv_buf | int array of length comm_size() that will be filled in GPU ids for all processes (in rank order). |
Definition at line 23 of file comm_single.cpp.
References comm_gpuid().
Referenced by comm_peer2peer_init().
void comm_gather_hostname | ( | char * | hostname_recv_buf | ) |
Gather all hostnames.
[out] | hostname_recv_buf | char array of length 128*comm_size() that will be filled in GPU ids for all processes. Each hostname is in rank order, with 128 bytes for each. |
Definition at line 19 of file comm_single.cpp.
References comm_hostname().
Referenced by comm_init_common().
void comm_init | ( | int | ndim, |
const int * | dims, | ||
QudaCommsMap | rank_from_coords, | ||
void * | map_data | ||
) |
Initialize the communications, implemented in comm_single.cpp, comm_qmp.cpp, and comm_mpi.cpp.
Dummy communications layer for single-GPU backend.
Definition at line 10 of file comm_single.cpp.
References comm_init_common().
Referenced by initCommsGridQuda().
int comm_query | ( | MsgHandle * | mh | ) |
Definition at line 47 of file comm_single.cpp.
Referenced by quda::cudaColorSpinorField::commsQuery().
int comm_rank | ( | void | ) |
Definition at line 15 of file comm_single.cpp.
Referenced by quda::broadcastTuneCache(), comm_create_topology(), comm_gdr_blacklist(), comm_init_common(), comm_peer2peer_init(), quda::flushForceMonitor(), quda::forceRecord(), getRankVerbosity(), hisq_force_init(), quda::loadTuneCache(), main(), quda::saveProfile(), quda::saveTuneCache(), quda::tuneLaunch(), and quda::MG::verify().
int comm_size | ( | void | ) |
Definition at line 17 of file comm_single.cpp.
Referenced by comm_init_common(), comm_peer2peer_init(), quda::compareSpinor(), computeGaugeFixingOVRQuda(), quda::LatticeField::createIPCComms(), quda::blas::HeavyQuarkResidualNorm(), hisq_force_test(), main(), quda::plaquette(), TEST(), and quda::blas::xpyHeavyQuarkResidualNorm().
void comm_start | ( | MsgHandle * | mh | ) |
Definition at line 43 of file comm_single.cpp.
Referenced by quda::LatticeField::createIPCComms(), do_exchange_cpu_staple(), quda::GaugeField::exchange(), quda::ColorSpinorField::exchange(), exchange_cpu_sitelink_ex(), exchange_sitelink(), exchange_sitelink_diag(), quda::cpuGaugeField::exchangeExtendedGhost(), quda::cudaGaugeField::recvStart(), quda::cudaColorSpinorField::recvStart(), quda::cudaGaugeField::sendStart(), and quda::cudaColorSpinorField::sendStart().
void comm_wait | ( | MsgHandle * | mh | ) |
Definition at line 45 of file comm_single.cpp.
Referenced by quda::cudaGaugeField::commsComplete(), quda::cudaColorSpinorField::commsWait(), quda::LatticeField::createIPCComms(), do_exchange_cpu_staple(), quda::GaugeField::exchange(), quda::ColorSpinorField::exchange(), exchange_cpu_sitelink_ex(), exchange_sitelink(), exchange_sitelink_diag(), and quda::cpuGaugeField::exchangeExtendedGhost().