Precised group MPI instead of group Parallel for Mpi classes in documentation.
This commit is contained in:
parent
d54e88dd16
commit
ad74755d8e
6 changed files with 36 additions and 9 deletions
|
|
@ -137,6 +137,8 @@ namespace eo
|
||||||
* These tags are used for framework communication and fits "channels", so as to differentiate when we're
|
* These tags are used for framework communication and fits "channels", so as to differentiate when we're
|
||||||
* sending an order to a worker (Commands) or data (Messages). They are not reserved by the framework and can be
|
* sending an order to a worker (Commands) or data (Messages). They are not reserved by the framework and can be
|
||||||
* used by the user, but he is not bound to.
|
* used by the user, but he is not bound to.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
namespace Channel
|
namespace Channel
|
||||||
{
|
{
|
||||||
|
|
@ -149,6 +151,8 @@ namespace eo
|
||||||
*
|
*
|
||||||
* These orders are sent by the master to the workers, to indicate to them if they should receive another task
|
* These orders are sent by the master to the workers, to indicate to them if they should receive another task
|
||||||
* to do (Continue), if an one shot job is done (Finish) or if a multi job is done (Kill).
|
* to do (Continue), if an one shot job is done (Finish) or if a multi job is done (Kill).
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
namespace Message
|
namespace Message
|
||||||
{
|
{
|
||||||
|
|
@ -159,6 +163,8 @@ namespace eo
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief If the job only has one master, the user can use this constant, so as not to worry with integer ids.
|
* @brief If the job only has one master, the user can use this constant, so as not to worry with integer ids.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
const int DEFAULT_MASTER = 0;
|
const int DEFAULT_MASTER = 0;
|
||||||
|
|
||||||
|
|
@ -204,6 +210,8 @@ namespace eo
|
||||||
* };
|
* };
|
||||||
* @endcode
|
* @endcode
|
||||||
* This makes the code easier to write for the user.
|
* This makes the code easier to write for the user.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< typename JobData, typename Wrapped >
|
template< typename JobData, typename Wrapped >
|
||||||
struct SharedDataFunction
|
struct SharedDataFunction
|
||||||
|
|
@ -277,6 +285,8 @@ namespace eo
|
||||||
*
|
*
|
||||||
* This is a functor implementing void operator()(int), and also a shared data function, containing wrapper on its
|
* This is a functor implementing void operator()(int), and also a shared data function, containing wrapper on its
|
||||||
* own type.
|
* own type.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< typename JobData >
|
template< typename JobData >
|
||||||
struct SendTaskFunction : public eoUF<int, void>, public SharedDataFunction< JobData, SendTaskFunction<JobData> >
|
struct SendTaskFunction : public eoUF<int, void>, public SharedDataFunction< JobData, SendTaskFunction<JobData> >
|
||||||
|
|
@ -300,6 +310,8 @@ namespace eo
|
||||||
*
|
*
|
||||||
* This is a functor implementing void operator()(int), and also a shared data function, containing wrapper on
|
* This is a functor implementing void operator()(int), and also a shared data function, containing wrapper on
|
||||||
* its own type.
|
* its own type.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< typename JobData >
|
template< typename JobData >
|
||||||
struct HandleResponseFunction : public eoUF<int, void>, public SharedDataFunction< JobData, HandleResponseFunction<JobData> >
|
struct HandleResponseFunction : public eoUF<int, void>, public SharedDataFunction< JobData, HandleResponseFunction<JobData> >
|
||||||
|
|
@ -325,6 +337,8 @@ namespace eo
|
||||||
*
|
*
|
||||||
* This is a functor implementing void operator()(), and also a shared data function, containing wrapper on its
|
* This is a functor implementing void operator()(), and also a shared data function, containing wrapper on its
|
||||||
* own type.
|
* own type.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< typename JobData >
|
template< typename JobData >
|
||||||
struct ProcessTaskFunction : public eoF<void>, public SharedDataFunction< JobData, ProcessTaskFunction<JobData> >
|
struct ProcessTaskFunction : public eoF<void>, public SharedDataFunction< JobData, ProcessTaskFunction<JobData> >
|
||||||
|
|
@ -348,6 +362,8 @@ namespace eo
|
||||||
*
|
*
|
||||||
* This is a functor implementing bool operator()(), and also a shared function, containing wrapper on its own
|
* This is a functor implementing bool operator()(), and also a shared function, containing wrapper on its own
|
||||||
* type.
|
* type.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< typename JobData >
|
template< typename JobData >
|
||||||
struct IsFinishedFunction : public eoF<bool>, public SharedDataFunction< JobData, IsFinishedFunction<JobData> >
|
struct IsFinishedFunction : public eoF<bool>, public SharedDataFunction< JobData, IsFinishedFunction<JobData> >
|
||||||
|
|
@ -377,6 +393,8 @@ namespace eo
|
||||||
* The user has to implement data(), which is the getter for retrieving JobData. We don't have any idea of who
|
* The user has to implement data(), which is the getter for retrieving JobData. We don't have any idea of who
|
||||||
* owns the data, moreover it is impossible to initialize it in this generic JobStore, as we don't know its
|
* owns the data, moreover it is impossible to initialize it in this generic JobStore, as we don't know its
|
||||||
* form. As a matter of fact, the user has to define this in the JobStore subclasses.
|
* form. As a matter of fact, the user has to define this in the JobStore subclasses.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< typename JobData >
|
template< typename JobData >
|
||||||
struct JobStore
|
struct JobStore
|
||||||
|
|
@ -501,6 +519,8 @@ namespace eo
|
||||||
*
|
*
|
||||||
* Any of the 3 master functors can launch exception, it will be catched and rethrown as a std::runtime_exception
|
* Any of the 3 master functors can launch exception, it will be catched and rethrown as a std::runtime_exception
|
||||||
* to the higher layers.
|
* to the higher layers.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< class JobData >
|
template< class JobData >
|
||||||
class Job
|
class Job
|
||||||
|
|
@ -755,6 +775,8 @@ namespace eo
|
||||||
* times. The job will be terminated on both sides (master and worker) once the master would have said it.
|
* times. The job will be terminated on both sides (master and worker) once the master would have said it.
|
||||||
*
|
*
|
||||||
* It uses the message Message::Finish as the termination message.
|
* It uses the message Message::Finish as the termination message.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< class JobData >
|
template< class JobData >
|
||||||
class OneShotJob : public Job< JobData >
|
class OneShotJob : public Job< JobData >
|
||||||
|
|
@ -780,6 +802,8 @@ namespace eo
|
||||||
* It uses the message Message::Kill as the termination message. This message can be launched with an EmptyJob,
|
* It uses the message Message::Kill as the termination message. This message can be launched with an EmptyJob,
|
||||||
* launched only by the master. If no Message::Kill is sent on the Channels::Commands, the worker will wait
|
* launched only by the master. If no Message::Kill is sent on the Channels::Commands, the worker will wait
|
||||||
* forever, which will cause a deadlock.
|
* forever, which will cause a deadlock.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< class JobData >
|
template< class JobData >
|
||||||
class MultiJob : public Job< JobData >
|
class MultiJob : public Job< JobData >
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,8 @@ namespace eo
|
||||||
/**
|
/**
|
||||||
* @brief Constant indicating to use all the resting available workers, in assignment algorithms constructor
|
* @brief Constant indicating to use all the resting available workers, in assignment algorithms constructor
|
||||||
* using an interval.
|
* using an interval.
|
||||||
|
*
|
||||||
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
const int REST_OF_THE_WORLD = -1;
|
const int REST_OF_THE_WORLD = -1;
|
||||||
|
|
||||||
|
|
@ -42,7 +44,7 @@ namespace eo
|
||||||
* from the state "available" to the state "busy", and the master has to wait for their response for considering
|
* from the state "available" to the state "busy", and the master has to wait for their response for considering
|
||||||
* them available again.
|
* them available again.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
struct AssignmentAlgorithm
|
struct AssignmentAlgorithm
|
||||||
{
|
{
|
||||||
|
|
@ -104,7 +106,7 @@ namespace eo
|
||||||
* This kind of assignment is adapted for tasks whose execution time is stochastic or unknown, but without any
|
* This kind of assignment is adapted for tasks whose execution time is stochastic or unknown, but without any
|
||||||
* warranty to be faster than other assignments.
|
* warranty to be faster than other assignments.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
struct DynamicAssignmentAlgorithm : public AssignmentAlgorithm
|
struct DynamicAssignmentAlgorithm : public AssignmentAlgorithm
|
||||||
{
|
{
|
||||||
|
|
@ -210,7 +212,7 @@ namespace eo
|
||||||
* duration of processing task will be the same for each run. There is no warranty that this algorithm is more
|
* duration of processing task will be the same for each run. There is no warranty that this algorithm is more
|
||||||
* or less efficient that another one. When having a doubt, use DynamicAssignmentAlgorithm.
|
* or less efficient that another one. When having a doubt, use DynamicAssignmentAlgorithm.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
struct StaticAssignmentAlgorithm : public AssignmentAlgorithm
|
struct StaticAssignmentAlgorithm : public AssignmentAlgorithm
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ namespace eo
|
||||||
* boost::mpi::communicator is the main object used to send and receive messages between the different hosts of
|
* boost::mpi::communicator is the main object used to send and receive messages between the different hosts of
|
||||||
* a MPI algorithm.
|
* a MPI algorithm.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
class Node
|
class Node
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ namespace eo
|
||||||
* this rank has evaluated. Without this map, when receiving results from a worker, the master couldn't be
|
* this rank has evaluated. Without this map, when receiving results from a worker, the master couldn't be
|
||||||
* able to replace the right elements in the table.
|
* able to replace the right elements in the table.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template<class EOT>
|
template<class EOT>
|
||||||
struct ParallelApplyData
|
struct ParallelApplyData
|
||||||
|
|
@ -272,7 +272,7 @@ namespace eo
|
||||||
* User can tune functors when constructing the object. For each functor which is not given, a default one is
|
* User can tune functors when constructing the object. For each functor which is not given, a default one is
|
||||||
* generated.
|
* generated.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
*/
|
*/
|
||||||
template< class EOT >
|
template< class EOT >
|
||||||
struct ParallelApplyStore : public JobStore< ParallelApplyData<EOT> >
|
struct ParallelApplyStore : public JobStore< ParallelApplyData<EOT> >
|
||||||
|
|
@ -357,7 +357,7 @@ namespace eo
|
||||||
* A typedef wouldn't have been working, as typedef on templates don't work in C++. Traits would be a
|
* A typedef wouldn't have been working, as typedef on templates don't work in C++. Traits would be a
|
||||||
* disgraceful overload for the user.
|
* disgraceful overload for the user.
|
||||||
*
|
*
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
* @see eoParallelApply.h
|
* @see eoParallelApply.h
|
||||||
*/
|
*/
|
||||||
template< typename EOT >
|
template< typename EOT >
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ namespace eo
|
||||||
namespace mpi
|
namespace mpi
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @ingroup Parallel
|
* @ingroup MPI
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ Authors:
|
||||||
|
|
||||||
# include <iostream> // ostream
|
# include <iostream> // ostream
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Contains all the necessary entities to serialize eo objects into JSON objects.
|
* @brief Contains all the necessary entities to serialize eo objects into JSON objects.
|
||||||
*
|
*
|
||||||
|
|
@ -36,7 +37,7 @@ Authors:
|
||||||
*
|
*
|
||||||
* @ingroup Utilities
|
* @ingroup Utilities
|
||||||
* @defgroup Serialization Serialization helpers
|
* @defgroup Serialization Serialization helpers
|
||||||
*/
|
**/
|
||||||
namespace eoserial
|
namespace eoserial
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
Reference in a new issue