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().