redefine distributed means

This commit is contained in:
tqchen 2015-03-09 14:43:05 -07:00
parent c8efc01367
commit d558f6f550
6 changed files with 20 additions and 3 deletions

View File

@ -65,9 +65,8 @@ inline int GetRank(void);
/*! \brief gets total number of processes */
inline int GetWorldSize(void);
/*! \brief whether rabit env is in distributed mode */
inline bool IsDistributed(void) {
return GetWorldSize() != 1;
}
inline bool IsDistributed(void);
/*! \brief gets processor's name */
inline std::string GetProcessorName(void);
/*!

View File

@ -145,6 +145,8 @@ class IEngine {
virtual int GetRank(void) const = 0;
/*! \brief gets total number of nodes */
virtual int GetWorldSize(void) const = 0;
/*! \brief whether we run in distribted mode */
virtual bool IsDistributed(void) const = 0;
/*! \brief gets the host name of the current node */
virtual std::string GetHost(void) const = 0;
/*!

View File

@ -107,6 +107,10 @@ inline int GetRank(void) {
inline int GetWorldSize(void) {
return engine::GetEngine()->GetWorldSize();
}
// whether rabit is distributed
inline bool IsDistributed(void) {
return engine::GetEngine()->IsDistributed();
}
// get the name of current processor
inline std::string GetProcessorName(void) {
return engine::GetEngine()->GetHost();

View File

@ -63,6 +63,10 @@ class AllreduceBase : public IEngine {
if (world_size == -1) return 1;
return world_size;
}
/*! \brief whether is distributed or not */
virtual bool IsDistributed(void) const {
return tracker_uri == "NULL";
}
/*! \brief get rank */
virtual std::string GetHost(void) const {
return host_uri;

View File

@ -56,6 +56,10 @@ class EmptyEngine : public IEngine {
virtual int GetWorldSize(void) const {
return 1;
}
/*! \brief whether it is distributed */
virtual bool IsDistributed(void) const {
return false;
}
/*! \brief get the host name of current node */
virtual std::string GetHost(void) const {
return std::string("");

View File

@ -59,6 +59,10 @@ class MPIEngine : public IEngine {
virtual int GetWorldSize(void) const {
return MPI::COMM_WORLD.Get_size();
}
/*! \brief whether it is distributed */
virtual bool IsDistributed(void) const {
return true;
}
/*! \brief get the host name of current node */
virtual std::string GetHost(void) const {
int len;