|
Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
|
#include <common.h>
Public Member Functions | |
| CommData () | |
| ~CommData () | |
| CommData (CommData const &other) | |
| copy constructor sets created to zero More... | |
| CommData & | operator= (CommData const &other) |
| CommData (MPI_Comm cm) | |
| create active communicator wrapper More... | |
| CommData (int rank, int color, int np) | |
| create non-active communicator wrapper More... | |
| CommData (int rank, int color, CommData parent) | |
| create active subcomm from parent comm which must be active More... | |
| void | activate (MPI_Comm parent) |
| activate this subcommunicator by splitting parent_comm More... | |
| void | deactivate () |
| double | estimate_bcast_time (int64_t msg_sz) |
| double | estimate_allred_time (int64_t msg_sz, MPI_Op op) |
| double | estimate_red_time (int64_t msg_sz, MPI_Op op) |
| double | estimate_alltoall_time (int64_t chunk_sz) |
| double | estimate_alltoallv_time (int64_t tot_sz) |
| void | bcast (void *buf, int64_t count, MPI_Datatype mdtype, int root) |
| broadcast, same interface as MPI_Bcast, but excluding the comm More... | |
| void | allred (void *inbuf, void *outbuf, int64_t count, MPI_Datatype mdtype, MPI_Op op) |
| allreduce, same interface as MPI_Allreduce, but excluding the comm More... | |
| void | red (void *inbuf, void *outbuf, int64_t count, MPI_Datatype mdtype, MPI_Op op, int root) |
| reduce, same interface as MPI_Reduce, but excluding the comm More... | |
| void | all_to_allv (void *send_buffer, int64_t const *send_counts, int64_t const *send_displs, int64_t datum_size, void *recv_buffer, int64_t const *recv_counts, int64_t const *recv_displs) |
| performs all-to-all-v with 64-bit integer counts and offset on arbitrary length types (datum_size), and uses point-to-point when all-to-all-v sparse More... | |
Data Fields | |
| MPI_Comm | cm |
| int | np |
| int | rank |
| int | color |
| int | alive |
| int | created |
| CTF_int::CommData::CommData | ( | ) |
Definition at line 217 of file common.cxx.
| CTF_int::CommData::~CommData | ( | ) |
Definition at line 222 of file common.cxx.
| CTF_int::CommData::CommData | ( | CommData const & | other | ) |
copy constructor sets created to zero
Definition at line 226 of file common.cxx.
References alive, cm, color, np, ctf.core::np(), rank, and ctf.core::rank().
| CTF_int::CommData::CommData | ( | MPI_Comm | cm | ) |
create active communicator wrapper
| [in] | cm | MPI_Comm defining this wrapper |
Definition at line 246 of file common.cxx.
References ctf.core::np(), and ctf.core::rank().
| CTF_int::CommData::CommData | ( | int | rank, |
| int | color, | ||
| int | np | ||
| ) |
create non-active communicator wrapper
| [in] | rank | rank within this comm |
| [in] | color | identifier of comm within parent |
| [in] | np | number of processors within this comm |
Definition at line 254 of file common.cxx.
References ctf.core::np(), and ctf.core::rank().
| CTF_int::CommData::CommData | ( | int | rank, |
| int | color, | ||
| CommData | parent | ||
| ) |
create active subcomm from parent comm which must be active
| [in] | rank | processor rank within subcomm |
| [in] | color | identifier of subcomm within this comm |
| [in] | parent | comm to split |
Definition at line 262 of file common.cxx.
References alive, ASSERT, cm, ctf.core::np(), and ctf.core::rank().
| void CTF_int::CommData::activate | ( | MPI_Comm | parent | ) |
activate this subcommunicator by splitting parent_comm
| [in] | parent | communicator to split |
Definition at line 272 of file common.cxx.
References ASSERT, ctf.core::np(), and ctf.core::rank().
Referenced by CTF_int::topology::activate().
| void CTF_int::CommData::all_to_allv | ( | void * | send_buffer, |
| int64_t const * | send_counts, | ||
| int64_t const * | send_displs, | ||
| int64_t | datum_size, | ||
| void * | recv_buffer, | ||
| int64_t const * | recv_counts, | ||
| int64_t const * | recv_displs | ||
| ) |
performs all-to-all-v with 64-bit integer counts and offset on arbitrary length types (datum_size), and uses point-to-point when all-to-all-v sparse
| [in] | send_buffer | data to send |
| [in] | send_counts | number of datums to send to each process |
| [in] | send_displs | displacements of datum sets in sen_buffer |
| [in] | datum_size | size of MPI_datatype to use |
| [in,out] | recv_buffer | data to recv |
| [in] | recv_counts | number of datums to recv to each process |
| [in] | recv_displs | displacements of datum sets in sen_buffer |
Definition at line 424 of file common.cxx.
References ABORT, CTF_int::cdealloc(), CTF_int::mst_alloc_ptr(), ctf.core::np(), CTF_int::LinModel< nparam >::observe(), ctf.core::rank(), and CTF_int::LinModel< nparam >::should_observe().
Referenced by CTF_int::cyclic_reshuffle(), and CTF_int::wr_pairs_layout().
| void CTF_int::CommData::allred | ( | void * | inbuf, |
| void * | outbuf, | ||
| int64_t | count, | ||
| MPI_Datatype | mdtype, | ||
| MPI_Op | op | ||
| ) |
allreduce, same interface as MPI_Allreduce, but excluding the comm
Definition at line 360 of file common.cxx.
References ctf.core::np(), CTF_int::LinModel< nparam >::observe(), and CTF_int::LinModel< nparam >::should_observe().
Referenced by CTF_int::tensor::orient_subworld(), CTF_int::tspsum_replicate::run(), and CTF_int::tsum_replicate::run().
| void CTF_int::CommData::bcast | ( | void * | buf, |
| int64_t | count, | ||
| MPI_Datatype | mdtype, | ||
| int | root | ||
| ) |
broadcast, same interface as MPI_Bcast, but excluding the comm
Definition at line 336 of file common.cxx.
References ctf.core::np(), CTF_int::LinModel< nparam >::observe(), and CTF_int::LinModel< nparam >::should_observe().
Referenced by CTF_int::bcast_step(), CTF_int::Term::operator double(), CTF_int::Term::operator float(), CTF_int::Term::operator int(), CTF_int::Term::operator int64_t(), CTF_int::tensor::orient_subworld(), CTF_int::spctr_replicate::run(), CTF_int::tspsum_replicate::run(), CTF_int::ctr_2d_general::run(), CTF_int::tsum_replicate::run(), and CTF_int::ctr_replicate::run().
| void CTF_int::CommData::deactivate | ( | ) |
Definition at line 283 of file common.cxx.
Referenced by CTF_int::topology::deactivate().
| double CTF_int::CommData::estimate_allred_time | ( | int64_t | msg_sz, |
| MPI_Op | op | ||
| ) |
Definition at line 300 of file common.cxx.
References CTF_int::LinModel< nparam >::est_time(), and ctf.core::np().
| double CTF_int::CommData::estimate_alltoall_time | ( | int64_t | chunk_sz | ) |
Definition at line 325 of file common.cxx.
References CTF_int::LinModel< nparam >::est_time(), and ctf.core::np().
| double CTF_int::CommData::estimate_alltoallv_time | ( | int64_t | tot_sz | ) |
Definition at line 330 of file common.cxx.
References CTF_int::LinModel< nparam >::est_time(), and ctf.core::np().
| double CTF_int::CommData::estimate_bcast_time | ( | int64_t | msg_sz | ) |
Definition at line 295 of file common.cxx.
References CTF_int::LinModel< nparam >::est_time(), and ctf.core::np().
Referenced by CTF_int::spctr_replicate::est_time_fp(), CTF_int::ctr_2d_general::est_time_fp(), CTF_int::spctr_2d_general::est_time_fp(), and CTF_int::ctr_replicate::est_time_fp().
| double CTF_int::CommData::estimate_red_time | ( | int64_t | msg_sz, |
| MPI_Op | op | ||
| ) |
Definition at line 308 of file common.cxx.
References CTF_int::LinModel< nparam >::est_time(), and ctf.core::np().
Referenced by CTF_int::spctr_replicate::est_time_fp(), CTF_int::ctr_2d_general::est_time_fp(), CTF_int::spctr_2d_general::est_time_fp(), and CTF_int::ctr_replicate::est_time_fp().
Definition at line 235 of file common.cxx.
References alive, cm, color, np, ctf.core::np(), rank, and ctf.core::rank().
| void CTF_int::CommData::red | ( | void * | inbuf, |
| void * | outbuf, | ||
| int64_t | count, | ||
| MPI_Datatype | mdtype, | ||
| MPI_Op | op, | ||
| int | root | ||
| ) |
reduce, same interface as MPI_Reduce, but excluding the comm
Definition at line 392 of file common.cxx.
References ctf.core::np(), CTF_int::LinModel< nparam >::observe(), and CTF_int::LinModel< nparam >::should_observe().
Referenced by CTF_int::reduce_step_post(), CTF_int::spctr_replicate::run(), CTF_int::ctr_2d_general::run(), and CTF_int::ctr_replicate::run().
| int CTF_int::CommData::alive |
Definition at line 133 of file common.h.
Referenced by CommData(), and operator=().
| MPI_Comm CTF_int::CommData::cm |
Definition at line 129 of file common.h.
Referenced by CTF_int::topology::activate(), CTF::Tensor< dtype >::align(), CTF_int::block_reshuffle(), CTF_int::calc_cnt_displs(), CommData(), CTF_int::tensor::compare(), dgtog_reshuffle(), CTF::Tensor< dtype >::fill_sp_random(), CTF_int::get_best_topo(), CTF_int::get_len_ordering(), operator=(), CTF_int::summation::print(), CTF_int::reduce_step_post(), sparse_mp3(), and CTF_int::wr_pairs_layout().
| int CTF_int::CommData::color |
Definition at line 132 of file common.h.
Referenced by CommData(), and operator=().
| int CTF_int::CommData::np |
Definition at line 130 of file common.h.
Referenced by CTF_int::bcast_step(), CTF_int::can_morph(), CommData(), CTF_int::tensor::compare(), CTF_int::cyclic_reshuffle(), dgtog_reshuffle(), CTF_int::algstrct::estimate_csr_red_time(), CTF_int::scaling::execute(), CTF_int::ctr_2d_general::find_bsizes(), CTF_int::spctr_2d_general::find_bsizes(), CTF_int::get_generic_topovec(), CTF_int::get_len_ordering(), CTF_int::get_phys_topo(), CTF_int::glb_cyclic_reshuffle(), CTF_int::summation::is_equal(), CTF_int::map_tensor(), CTF_int::morph_topo(), operator=(), CTF_int::padded_reshuffle(), CTF_int::ctr_2d_general::print(), CTF_int::spctr_2d_general::print(), CTF_int::reduce_step_post(), CTF_int::ctr_2d_general::run(), CTF_int::spctr_2d_general::run(), and CTF_int::wr_pairs_layout().
| int CTF_int::CommData::rank |
Definition at line 131 of file common.h.
Referenced by CTF_int::bcast_step(), CTF_int::block_reshuffle(), CTF_int::mapping::calc_phys_rank(), CommData(), CTF_int::tensor::compare(), CTF_int::cyclic_reshuffle(), dgtog_reshuffle(), CTF_int::scaling::execute(), CTF_int::get_generic_topovec(), CTF_int::get_len_ordering(), CTF_int::glb_cyclic_reshuffle(), CTF_int::summation::is_equal(), operator=(), CTF_int::padded_reshuffle(), CTF_int::summation::print(), CTF_int::reduce_step_post(), CTF_int::spctr_replicate::run(), CTF_int::tspsum_replicate::run(), CTF_int::ctr_2d_general::run(), CTF_int::spctr_2d_general::run(), CTF_int::tsum_replicate::run(), CTF_int::ctr_replicate::run(), CTF::Scalar< dtype >::Scalar(), CTF_int::seq_tsr_ctr::seq_tsr_ctr(), CTF_int::seq_tsr_spctr::seq_tsr_spctr(), CTF_int::topology::topology(), and CTF_int::wr_pairs_layout().