diff --git a/include/rabit/engine.h b/include/rabit/engine.h index a2f5da25b..272bbb8ef 100644 --- a/include/rabit/engine.h +++ b/include/rabit/engine.h @@ -183,7 +183,9 @@ enum DataType { kLong = 4, kULong = 5, kFloat = 6, - kDouble = 7 + kDouble = 7, + kLongLong = 8, + kULongLong = 9 }; } // namespace mpi /*! diff --git a/include/rabit/rabit-inl.h b/include/rabit/rabit-inl.h index 3d1ec59a8..219bff174 100644 --- a/include/rabit/rabit-inl.h +++ b/include/rabit/rabit-inl.h @@ -30,7 +30,7 @@ inline DataType GetType(void) { return kInt; } template<> -inline DataType GetType(void) { +inline DataType GetType(void) { return kUInt; } template<> @@ -49,6 +49,14 @@ template<> inline DataType GetType(void) { return kDouble; } +template<> +inline DataType GetType(void) { + return kLongLong; +} +template<> +inline DataType GetType(void) { + return kULongLong; +} } // namespace mpi } // namespace engine diff --git a/src/engine_mpi.cc b/src/engine_mpi.cc index 5c8a4c372..0b04877b8 100644 --- a/src/engine_mpi.cc +++ b/src/engine_mpi.cc @@ -110,6 +110,8 @@ inline MPI::Datatype GetType(mpi::DataType dtype) { case kULong: return MPI::UNSIGNED_LONG; case kFloat: return MPI::FLOAT; case kDouble: return MPI::DOUBLE; + case kLongLong: return MPI::LONG_LONG; + case kULongLong: return MPI::UNSIGNED_LONG_LONG; } utils::Error("unknown mpi::DataType"); return MPI::CHAR;