/*! * \file * \brief Distributed sort implementation * * \author * Christos Choutouridis AEM:8997 * <cchoutou@ece.auth.gr> */ #include "utils.hpp" #include "distsort.hpp" //! Statistic variables for exchange optimization distStat_t localStat, remoteStat; //! Performance timers for each one of the "costly" functions Timing TfullSort, Texchange, Tminmax, TelbowSort; bool isActive(mpi_id_t node, size_t nodes) { if (!((nodes > 0) && (nodes <= std::numeric_limits<mpi_id_t>::max()) )) throw std::runtime_error("(isActive) Non-acceptable value of MPI Nodes\n"); // ^ Assert that mpi_id_t can hold nodes, and thus we can cast without data loss! return (node >= 0) && (node < static_cast<mpi_id_t>(nodes)); }