MPI: Commands channel is now used only for job level informations, messages channels for data used in a job.
This commit is contained in:
parent
b31c520eba
commit
d48f045451
3 changed files with 12 additions and 12 deletions
|
|
@ -668,7 +668,7 @@ namespace eo
|
|||
timerStat.start("master_wait_for_all_responses");
|
||||
while( assignmentAlgo.availableWorkers() != totalWorkers )
|
||||
{
|
||||
bmpi::status status = comm.probe( bmpi::any_source, bmpi::any_tag );
|
||||
bmpi::status status = comm.probe( bmpi::any_source, eo::mpi::Channel::Messages );
|
||||
int wrkRank = status.source();
|
||||
that.handleResponse( wrkRank );
|
||||
comm.send( wrkRank, Channel::Commands, Message::Finish );
|
||||
|
|
@ -716,7 +716,7 @@ namespace eo
|
|||
# ifndef NDEBUG
|
||||
eo::log << "[M" << comm.rank() << "] Waitin' for node..." << std::endl;
|
||||
# endif
|
||||
bmpi::status status = comm.probe( bmpi::any_source, bmpi::any_tag );
|
||||
bmpi::status status = comm.probe( bmpi::any_source, eo::mpi::Channel::Messages );
|
||||
int wrkRank = status.source();
|
||||
# ifndef NDEBUG
|
||||
eo::log << "[M" << comm.rank() << "] Node " << wrkRank << " just terminated." << std::endl;
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ namespace eo
|
|||
{
|
||||
EOT individual;
|
||||
MultiStartData< EOT >& d = *_data;
|
||||
d.comm.recv( wrkRank, 1, individual );
|
||||
d.comm.recv( wrkRank, eo::mpi::Channel::Messages, individual );
|
||||
d.bests.push_back( individual );
|
||||
}
|
||||
};
|
||||
|
|
@ -159,7 +159,7 @@ namespace eo
|
|||
{
|
||||
_data->resetAlgo( _data->pop );
|
||||
_data->algo( _data->pop );
|
||||
_data->comm.send( _data->masterRank, 1, _data->pop.best_element() );
|
||||
_data->comm.send( _data->masterRank, eo::mpi::Channel::Messages, _data->pop.best_element() );
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -265,12 +265,12 @@ namespace eo
|
|||
for( unsigned i = 0 ; i < nbWorkers ; ++i )
|
||||
{
|
||||
int wrkRank = workers[i];
|
||||
eo::mpi::Node::comm().send( wrkRank, 1, seeds[ i ] );
|
||||
eo::mpi::Node::comm().send( wrkRank, eo::mpi::Channel::Commands, seeds[ i ] );
|
||||
}
|
||||
} else
|
||||
{
|
||||
int seed;
|
||||
eo::mpi::Node::comm().recv( _masterRank, 1, seed );
|
||||
eo::mpi::Node::comm().recv( _masterRank, eo::mpi::Channel::Commands, seed );
|
||||
eo::log << eo::debug << eo::mpi::Node::comm().rank() << "- Seed: " << seed << std::endl;
|
||||
eo::rng.reseed( seed );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -173,14 +173,14 @@ namespace eo
|
|||
|
||||
int sentSize = futureIndex - _data->index ;
|
||||
|
||||
_data->comm.send( wrkRank, 1, sentSize );
|
||||
_data->comm.send( wrkRank, eo::mpi::Channel::Messages, sentSize );
|
||||
|
||||
eo::log << eo::progress << "Evaluating individual " << _data->index << std::endl;
|
||||
|
||||
_data->assignedTasks[ wrkRank ].index = _data->index;
|
||||
_data->assignedTasks[ wrkRank ].size = sentSize;
|
||||
|
||||
_data->comm.send( wrkRank, 1, & ( (_data->table())[ _data->index ] ) , sentSize );
|
||||
_data->comm.send( wrkRank, eo::mpi::Channel::Messages, & ( (_data->table())[ _data->index ] ) , sentSize );
|
||||
_data->index = futureIndex;
|
||||
}
|
||||
};
|
||||
|
|
@ -203,7 +203,7 @@ namespace eo
|
|||
|
||||
void operator()(int wrkRank)
|
||||
{
|
||||
_data->comm.recv( wrkRank, 1, & (_data->table()[ _data->assignedTasks[wrkRank].index ] ), _data->assignedTasks[wrkRank].size );
|
||||
_data->comm.recv( wrkRank, eo::mpi::Channel::Messages, & (_data->table()[ _data->assignedTasks[wrkRank].index ] ), _data->assignedTasks[wrkRank].size );
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -230,16 +230,16 @@ namespace eo
|
|||
{
|
||||
int recvSize;
|
||||
|
||||
_data->comm.recv( _data->masterRank, 1, recvSize );
|
||||
_data->comm.recv( _data->masterRank, eo::mpi::Channel::Messages, recvSize );
|
||||
_data->tempArray.resize( recvSize );
|
||||
_data->comm.recv( _data->masterRank, 1, & _data->tempArray[0] , recvSize );
|
||||
_data->comm.recv( _data->masterRank, eo::mpi::Channel::Messages, & _data->tempArray[0] , recvSize );
|
||||
timerStat.start("worker_processes");
|
||||
for( int i = 0; i < recvSize ; ++i )
|
||||
{
|
||||
_data->func( _data->tempArray[ i ] );
|
||||
}
|
||||
timerStat.stop("worker_processes");
|
||||
_data->comm.send( _data->masterRank, 1, & _data->tempArray[0], recvSize );
|
||||
_data->comm.send( _data->masterRank, eo::mpi::Channel::Messages, & _data->tempArray[0], recvSize );
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Reference in a new issue