intercommunicator.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 55 行

CPP
55
字号
// Copyright (C) 2007 Trustees of Indiana University// Authors: Douglas Gregor//          Andrew Lumsdaine// Use, modification and distribution is subject to the Boost Software// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)#include <boost/mpi/intercommunicator.hpp>#include <boost/mpi/environment.hpp>#include <boost/mpi/group.hpp>namespace boost { namespace mpi {intercommunicator::intercommunicator(const communicator& local,                                      int local_leader,                                     const communicator& peer,                                      int remote_leader){  MPI_Comm comm;  BOOST_MPI_CHECK_RESULT(MPI_Intercomm_create,                         ((MPI_Comm)local, local_leader,                          (MPI_Comm)peer, remote_leader,                          environment::collectives_tag(), &comm));  comm_ptr.reset(new MPI_Comm(comm), comm_free());}boost::mpi::group intercommunicator::local_group() const{  return this->group();}int intercommunicator::remote_size() const{  int size;  BOOST_MPI_CHECK_RESULT(MPI_Comm_remote_size, ((MPI_Comm)*this, &size));  return size;}boost::mpi::group intercommunicator::remote_group() const{  MPI_Group gr;  BOOST_MPI_CHECK_RESULT(MPI_Comm_remote_group, ((MPI_Comm)*this, &gr));  return boost::mpi::group(gr, /*adopt=*/true);}communicator intercommunicator::merge(bool high) const{  MPI_Comm comm;  BOOST_MPI_CHECK_RESULT(MPI_Intercomm_merge, ((MPI_Comm)*this, high, &comm));  return communicator(comm, comm_take_ownership);}} } // end namespace boost::mpi

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?