* @param[in] master_host_name The name of the host which should be used as the Master host
* @param[in] pfs_host_name The name of the host which should be used as the parallel filestem host
* @param[in] pfs_host_name The name of the host which should be used as the parallel filestem host (large-capacity storage tier)
* @param[in] hpst_host_name The name of the host which should be used as the HPST host (high-performance storage tier)
* @param[in] limit_machine_count If set to -1, all the machines are used. If set to a strictly positive number N, only the first machines N will be used to compute jobs
*/
voidcreate_machines(xbt_dynar_thosts,
constBatsimContext*context,
conststd::string&master_host_name,
conststd::string&pfs_host_name,
conststd::string&hpst_host_name,
intlimit_machine_count=-1);
/**
...
...
@@ -215,10 +217,18 @@ public:
/**
* @brief Returns a const pointer to the Parallel File System host machine
* for the large-capacity storage tier.
* @return A const pointer to the Parallel File System host machine
*/
constMachine*pfs_machine()const;
/**
* @brief Returns a const pointer to the Parallel File System host machine
* for the high-performance storage tier.
* @return A const pointer to the Parallel File System host machine
*/
constMachine*hpst_machine()const;
/**
* @brief Computes and returns the total consumed energy of all the computing machines
* @param[in] context The Batsim context
...
...
@@ -256,6 +266,7 @@ private:
std::vector<Machine*>_machines;//!< The vector of computing machines
Machine*_master_machine=nullptr;//!< The Master host
Machine*_pfs_machine=nullptr;//!< The Master host
Machine*_hpst_machine=nullptr;//!< The Master host
PajeTracer*_tracer=nullptr;//!< The PajeTracer
std::map<MachineState,int>_nb_machines_in_each_state;//!< Counts how many machines are in each state
DELAY//!< The profile is a delay. Its data is of type DelayProfileData
,MSG_PARALLEL//!< The profile is composed of a computation vector and a communication matrix. Its data is of type MsgParallelProfileData
,MSG_PARALLEL_HOMOGENEOUS//!< The profile is a homogeneous MSG one. Its data is of type MsgParallelHomogeneousProfileData
,SMPI//!< The profile is a SimGrid MPI time-independent trace. Its data is of type SmpiProfileData
,SEQUENCE//!< The profile is non-atomic: it is composed of a sequence of other profiles
,MSG_PARALLEL_HOMOGENEOUS_PFS0//!< The profile is a homogeneous MSG for simple parallel filesystem. Its data is of type MsgParallelHomogeneousPFS0ProfileData
DELAY//!< The profile is a delay. Its data is of type DelayProfileData
,MSG_PARALLEL//!< The profile is composed of a computation vector and a communication matrix. Its data is of type MsgParallelProfileData
,MSG_PARALLEL_HOMOGENEOUS//!< The profile is a homogeneous MSG one. Its data is of type MsgParallelHomogeneousProfileData
,SMPI//!< The profile is a SimGrid MPI time-independent trace. Its data is of type SmpiProfileData
,SEQUENCE//!< The profile is non-atomic: it is composed of a sequence of other profiles
,MSG_PARALLEL_HOMOGENEOUS_PFS_MULTIPLE_TIERS//!< The profile is a homogeneous MSG for complex parallel filesystem access. Its data is of type MsgParallelHomogeneousPFSMultipleTiersProfileData
,MSG_DATA_STAGING//!< The profile is a MSG for moving data between the pfs hosts. Its data is of type DataStagingProfileData
};
/**
...
...
@@ -118,11 +119,37 @@ struct SequenceProfileData
};
/**
* @brief The data associated to MSG_PARALLEL_HOMOGENEOUS_PFS0 profiles
* @brief The data associated to MSG_PARALLEL_HOMOGENEOUS_PFS_MULTIPLE_TIERS profiles