From f6d61f02f674a7c17ab75bf00eaa11675f7e3ea1 Mon Sep 17 00:00:00 2001 From: tqchen Date: Thu, 16 Oct 2014 21:47:01 -0700 Subject: [PATCH] fix load bug --- src/learner/learner-inl.hpp | 3 ++- src/sync/sync.h | 3 +++ src/sync/sync_empty.cpp | 4 ++++ src/sync/sync_mpi.cpp | 8 ++++++++ src/tree/model.h | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/learner/learner-inl.hpp b/src/learner/learner-inl.hpp index 1a001eb95..89bc28aec 100644 --- a/src/learner/learner-inl.hpp +++ b/src/learner/learner-inl.hpp @@ -192,7 +192,8 @@ class BoostLearner { std::fill(enabled.begin(), enabled.end(), false); int start = step * pid; int end = std::min(step * (pid + 1), ncol); - utils::Printf("rank %d idset:", pid); + std::string name = sync::GetProcessorName(); + utils::Printf("rank %d of %s idset:", pid, name.c_str()); for (int i = start; i < end; ++i) { enabled[col_index[i]] = true; utils::Printf(" %u", col_index[i]); diff --git a/src/sync/sync.h b/src/sync/sync.h index 293f53515..8d83ab5fb 100644 --- a/src/sync/sync.h +++ b/src/sync/sync.h @@ -8,6 +8,7 @@ #include #include #include "../utils/utils.h" +#include namespace xgboost { /*! \brief syncrhonizer module that minimumly wraps interface of MPI */ @@ -23,6 +24,8 @@ enum ReduceOp { int GetRank(void); /*! \brief get total number of process */ int GetWorldSize(void); +/*! \brief get name of processor */ +std::string GetProcessorName(void); /*! * \brief this is used to check if sync module is a true distributed implementation, or simply a dummpy diff --git a/src/sync/sync_empty.cpp b/src/sync/sync_empty.cpp index 108f170ef..a86707d61 100644 --- a/src/sync/sync_empty.cpp +++ b/src/sync/sync_empty.cpp @@ -21,6 +21,10 @@ int GetWorldSize(void) { return 1; } +std::string GetProcessorName(void) { + return std::string(""); +} + template<> void AllReduce(uint32_t *sendrecvbuf, int count, ReduceOp op) { } diff --git a/src/sync/sync_mpi.cpp b/src/sync/sync_mpi.cpp index faf66ab6f..45f6c3d75 100644 --- a/src/sync/sync_mpi.cpp +++ b/src/sync/sync_mpi.cpp @@ -20,6 +20,14 @@ bool IsDistributed(void) { return true; } +std::string GetProcessorName(void) { + int len; + char name[MPI_MAX_PROCESSOR_NAME]; + MPI::Get_processor_name(name, len); + name[len] = '\0'; + return std::string(name); +} + void Finalize(void) { MPI::Finalize(); } diff --git a/src/tree/model.h b/src/tree/model.h index dbc35b3b4..84010bcc0 100644 --- a/src/tree/model.h +++ b/src/tree/model.h @@ -305,7 +305,7 @@ class TreeModel { // chg deleted nodes deleted_nodes.resize(0); for (int i = param.num_roots; i < param.num_nodes; i ++) { - if (nodes[i].is_root()) deleted_nodes.push_back(i); + if (nodes[i].is_deleted()) deleted_nodes.push_back(i); } utils::Assert(static_cast(deleted_nodes.size()) == param.num_deleted, "number of deleted nodes do not match");