diff --git a/src/users/user_replay.hpp b/src/users/user_replay.hpp index 10ffd4f77fab7cc25ee58aa6025edc2a9e1885b0..4a9b447b0b4864ea6778de165f3804a60aed164f 100644 --- a/src/users/user_replay.hpp +++ b/src/users/user_replay.hpp @@ -19,6 +19,9 @@ struct DMWindow bool date_in_dm_window(double date); }; +/** + * @brief Virtual class for users using a trace as input for submission. + */ class ReplayUser : public User { public: @@ -46,7 +49,7 @@ protected: public: long dm_stat[14] = { 0 }; - + protected: std::string input_json; UserSubmitQueue *original_trace; @@ -58,7 +61,7 @@ protected: }; /** - * @brief The user follows an input trace in a rigid fashion: she submits tasks + * @brief The user follows the input trace in a rigid fashion: she submits tasks * of same size and at the same submission time as in the original trace. */ class ReplayUserRigid : public ReplayUser @@ -79,8 +82,12 @@ protected: *********************** Users "demand response" ****************************** *****************************************************************************/ /** - * @brief - * @details + * @brief The user follows the input trace in a rigid fashion, except in the + * demand response window where she reconfigures the submitted jobs. + * @details The reconfiguration consists in dividing the number of cores + * requested by two (rounded up) and scale the execution time accordingly, + * following the speedup model. Note: if the original number of cores requested + * was 1, reconfig is equivalent to rigid, and will appear as such in the logs. */ class DMUserReconfig : virtual public ReplayUser { @@ -98,8 +105,12 @@ protected: }; /** - * @brief - * @details + * @brief The user follows the input trace in a rigid fashion, except in the + * demand response window where she degrades the submitted jobs. + * @details The degradation consists in dividing the number of cores requested + * by two (rounded up), keeping the original submission time. Note: if the + * original number of cores requested was 1, degrad is equivalent to rigid, and + * will appear as such in the logs. */ class DMUserDegrad : virtual public ReplayUser { @@ -116,8 +127,10 @@ protected: }; /** - * @brief - * @details + * @brief The user follows the input trace in a rigid fashion, except in the + * demand response window where she renounces the jobs. + * @details Renouncing consists in simply not submitting the job (and never + * submit it in the future). */ class DMUserRenonce : virtual public ReplayUser { @@ -134,8 +147,10 @@ protected: }; /** - * @brief - * @details + * @brief The user follows the input trace in a rigid fashion, except in the + * demand response window where she delays the submitted jobs. + * @details Delaying consists in not submitting the job straight away but at the + * end of the demand response window. */ class DMUserDelay : virtual public ReplayUser {