HW2: RC4 - Measurements version
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
// Default Data size (in case -q <N> is not present)
|
||||
static constexpr size_t DEFAULT_DATA_SIZE = 1 << 16;
|
||||
|
||||
// The maximum MPI size we support
|
||||
// The maximum MPI size we support (in Nodes x Processes)
|
||||
static constexpr size_t MAX_MPI_SIZE = 1024UL;
|
||||
|
||||
// The maximum pipeline size we support
|
||||
@@ -61,7 +61,7 @@ struct config_t {
|
||||
bool validation{false}; //!< Request a full validation at the end, performed by process rank 0.
|
||||
bool ndebug{false}; //!< Skips debug trap on DEBUG builds.
|
||||
size_t perf{1}; //!< Enable performance timing measurements and prints and repeat
|
||||
//!< the performs the sorting <perf> times to average the measurements
|
||||
//!< the sorting <perf> times.
|
||||
bool verbose{false}; //!< Flag to enable verbose output to stdout.
|
||||
};
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ struct MPI_t {
|
||||
* This function matches a transmit and a receive in order for fully exchanged data between
|
||||
* current node and partner.
|
||||
*
|
||||
* @tparam T The inner valur type used in buffer
|
||||
* @tparam ValueT The value type used in buffer
|
||||
*
|
||||
* @param ldata [const ValueT*] Pointer to local data to send
|
||||
* @param rdata [ValueT*] Pointer to buffer to receive data from partner
|
||||
@@ -163,7 +163,7 @@ struct MPI_t {
|
||||
* This call MUST paired with exchange_wait() for each MPI_t object.
|
||||
* Calling 2 consecutive exchange_start() for the same MPI_t object is undefined.
|
||||
*
|
||||
* @tparam ValueT The underlying value type used in buffers
|
||||
* @tparam ValueT The value type used in buffers
|
||||
*
|
||||
* @param ldata [const ValueT*] Pointer to local data to send
|
||||
* @param rdata [ValueT*] Pointer to buffer to receive data from partner
|
||||
@@ -267,8 +267,8 @@ using mpi_id_t = MPI_t<>::ID_t;
|
||||
/*!
|
||||
* @brief A std::vector wrapper with 2 vectors, an active and a shadow.
|
||||
*
|
||||
* This type exposes the standard vector
|
||||
* functionality of the active vector. The shadow can be used when we need to use the vector as mutable
|
||||
* This type exposes the standard vector functionality of the active vector.
|
||||
* The shadow can be used when we need to use the vector as mutable
|
||||
* data in algorithms that can not support "in-place" editing (like elbow-sort for example)
|
||||
*
|
||||
* @tparam Value_t the underlying data type of the vectors
|
||||
@@ -418,7 +418,9 @@ private:
|
||||
extern Log logger;
|
||||
|
||||
/*!
|
||||
* A small timing utility based on chrono.
|
||||
* A small timing utility based on chrono that supports timing rounds
|
||||
* and returning the median of them. Time can accumulate to the measurement
|
||||
* for each round.
|
||||
*/
|
||||
struct Timing {
|
||||
using Tpoint = std::chrono::steady_clock::time_point;
|
||||
@@ -485,7 +487,7 @@ private:
|
||||
};
|
||||
|
||||
/*!
|
||||
* Utility "high level function"-like macro to forward a function call
|
||||
* A "high level function"-like utility macro to forward a function call
|
||||
* and accumulate the execution time to the corresponding timing object.
|
||||
*
|
||||
* @param Tim The Timing object [Needs to have methods start() and stop()]
|
||||
|
||||
Reference in New Issue
Block a user