コード例 #1
0
ファイル: comm.cpp プロジェクト: ibaned/omega_h2
CommPtr Comm::dup() const {
#ifdef OMEGA_H_USE_MPI
  MPI_Comm impl2;
  CALL(MPI_Comm_dup(impl_, &impl2));
  return CommPtr(new Comm(impl2));
#else
  return CommPtr(new Comm(srcs_.exists(), srcs_.exists() && srcs_.size() == 1));
#endif
}
コード例 #2
0
ファイル: comm.cpp プロジェクト: ibaned/omega_h2
CommPtr Comm::world() {
#ifdef OMEGA_H_USE_MPI
  MPI_Comm impl;
  CALL(MPI_Comm_dup(MPI_COMM_WORLD, &impl));
  return CommPtr(new Comm(impl));
#else
  return CommPtr(new Comm());
#endif
}
コード例 #3
0
ファイル: comm.cpp プロジェクト: ibaned/omega_h2
CommPtr Comm::self() {
#ifdef OMEGA_H_USE_MPI
  MPI_Comm impl;
  CALL(MPI_Comm_dup(MPI_COMM_SELF, &impl));
  return CommPtr(new Comm(impl));
#else
  return CommPtr(new Comm());
#endif
}
コード例 #4
0
ファイル: comm.cpp プロジェクト: ibaned/omega_h2
CommPtr Comm::split(I32 color, I32 key) const {
#ifdef OMEGA_H_USE_MPI
  MPI_Comm impl2;
  CALL(MPI_Comm_split(impl_, color, key, &impl2));
  return CommPtr(new Comm(impl2));
#else
  (void)color;
  (void)key;
  return CommPtr(new Comm());
#endif
}
コード例 #5
0
ファイル: comm.cpp プロジェクト: ibaned/omega_h2
CommPtr Comm::graph_adjacent(Read<I32> srcs, Read<I32> dsts) const {
#ifdef OMEGA_H_USE_MPI
  MPI_Comm impl2;
  HostRead<I32> sources(srcs);
  HostRead<I32> destinations(dsts);
  int reorder = 0;
  CALL(MPI_Dist_graph_create_adjacent(impl_, sources.size(), sources.data(),
      OMEGA_H_MPI_UNWEIGHTED, destinations.size(), destinations.data(),
      OMEGA_H_MPI_UNWEIGHTED, MPI_INFO_NULL, reorder, &impl2));
  return CommPtr(new Comm(impl2));
#else
  CHECK(srcs == dsts);
  return CommPtr(new Comm(true, dsts.size() == 1));
#endif
}
コード例 #6
0
ファイル: comm.cpp プロジェクト: ibaned/omega_h2
CommPtr Comm::graph(Read<I32> dsts) const {
#ifdef OMEGA_H_USE_MPI
  MPI_Comm impl2;
  int n = 1;
  int sources[1] = {rank()};
  int degrees[1] = {dsts.size()};
  HostRead<I32> destinations(dsts);
  int reorder = 0;
  CALL(MPI_Dist_graph_create(impl_, n, sources, degrees, destinations.data(),
      OMEGA_H_MPI_UNWEIGHTED, MPI_INFO_NULL, reorder, &impl2));
  return CommPtr(new Comm(impl2));
#else
  return CommPtr(new Comm(true, dsts.size() == 1));
#endif
}
コード例 #7
0
ファイル: s4u_Mailbox.cpp プロジェクト: mpoquet/simgrid
CommPtr Mailbox::put_init()
{
  CommPtr res   = CommPtr(new s4u::Comm());
  res->sender_  = SIMIX_process_self();
  res->mailbox_ = this;
  return res;
}
コード例 #8
0
	BaseConnection::BaseConnection(BaseToBotImpl* baseToBot, int botPort, int basePort) {
		Log::trace("Starting server");
		this->baseToBot = baseToBot;
		this->basePort = basePort;
		this->communicator = CommPtr(Ice::initialize().get(),
			[](Ice::Communicator* c) { c->destroy(); });
		std::stringstream ss;
		ss << "tcp -p " << botPort;
		Ice::ObjectAdapterPtr adapter = communicator->
			createObjectAdapterWithEndpoints("BaseToBotImplAdapter", ss.str());
		adapter->add(baseToBot, communicator->stringToIdentity("BaseToBotImpl"));
		adapter->activate();
	}