#include <ParallelTaskManager.h>

Public Types | |
| using | input_type = typename T::input_type |
Public Member Functions | |
| ParallelTaskManager (ActionWithVector *av) | |
| void | applyForces (std::vector< double > &forcesForApply) |
| Apply the forces on the parallel object. | |
| input_type & | getActionInput () |
| Get the action input so we can use it. | |
| const input_type & | getActionInput () const |
| void | runAllTasks () |
| This runs all the tasks. | |
| bool | runInSerial () const |
| Is the calculation running in serial. | |
| void | setActionInput (const input_type &adata) |
| Copy the data from the underlying colvar into this parallel action. | |
| void | setupParallelTaskManager (std::size_t nder, std::size_t nforce_ts) |
| Setup the parallel task manager the three arguments are nder = number of derivatives per scalar nforce_ts = number of forces that are modified by multiple tasks. | |
| void | setWorkspaceSize (std::size_t size) |
| Creating the size of the workspace. | |
Static Public Member Functions | |
| static void | gatherThreadSafeForces (const ParallelActionsInput &input, const ForceIndexHolder &force_indices, const ForceInput &fdata, View< double > forces) |
| This is used to gather forces that are thread safe. | |
| static void | gatherThreadUnsafeForces (const ParallelActionsInput &input, const ForceIndexHolder &force_indices, const ForceInput &fdata, View< double > forces) |
| This is used to gather forces that are not thread safe. | |
| static void | registerKeywords (Keywords &keys) |
Private Member Functions | |
| void | gatherThreads (ForceOutput forces) |
| This is used internally to gather the forces on the threads. | |
| std::size_t | getValueStashSize () const |
Private Attributes | |
| ActionWithVector * | action |
| The underlying action for which we are managing parallel tasks. | |
| input_type | actiondata |
| This holds data for that the underlying action needs to do the calculation. | |
| ArgumentsBookkeeping | argumentsMap |
| Communicator & | comm |
| The MPI communicator. | |
| std::vector< double > | input_buffer |
| bool | ismatrix |
| Is this an action with matrix. | |
| ParallelActionsInput | myinput |
| This structs is used to pass data between the parallel interface and the function caller. | |
| std::size_t | nderivatives_per_task |
| Number of derivatives calculated for each task. | |
| std::size_t | nthreaded_forces |
| The number of forces on each thread The number of forces on each thread. | |
| std::vector< std::vector< double > > | omp_forces |
| A tempory set of vectors for holding forces over threads. | |
| bool | serial |
| True if not using MPI for parllisation. | |
| bool | useacc |
| Are we using acc for parallisation. | |
| std::vector< double > | value_stash |
| This holds the values before we pass them to the value. | |
| std::size_t | workspace_size |
| This holds tempory data that we use in performTask. | |
| using PLMD::ParallelTaskManager< T >::input_type = typename T::input_type |
| PLMD::ParallelTaskManager< T >::ParallelTaskManager | ( | ActionWithVector * | av | ) |
| void PLMD::ParallelTaskManager< T >::applyForces | ( | std::vector< double > & | forcesForApply | ) |
Apply the forces on the parallel object.
|
private |
This is used internally to gather the forces on the threads.
|
static |
This is used to gather forces that are thread safe.
|
static |
This is used to gather forces that are not thread safe.
| ParallelTaskManager< T >::input_type & PLMD::ParallelTaskManager< T >::getActionInput | ( | ) |
Get the action input so we can use it.
| const ParallelTaskManager< T >::input_type & PLMD::ParallelTaskManager< T >::getActionInput | ( | ) | const |
|
private |
|
static |
| void PLMD::ParallelTaskManager< T >::runAllTasks | ( | ) |
This runs all the tasks.
|
inline |
Is the calculation running in serial.
| void PLMD::ParallelTaskManager< T >::setActionInput | ( | const input_type & | adata | ) |
Copy the data from the underlying colvar into this parallel action.
| void PLMD::ParallelTaskManager< T >::setupParallelTaskManager | ( | std::size_t | nder, |
| std::size_t | nforce_ts ) |
Setup the parallel task manager the three arguments are nder = number of derivatives per scalar nforce_ts = number of forces that are modified by multiple tasks.
| void PLMD::ParallelTaskManager< T >::setWorkspaceSize | ( | std::size_t | size | ) |
Creating the size of the workspace.
|
private |
The underlying action for which we are managing parallel tasks.
|
private |
This holds data for that the underlying action needs to do the calculation.
|
private |
|
private |
The MPI communicator.
|
private |
|
private |
Is this an action with matrix.
|
private |
This structs is used to pass data between the parallel interface and the function caller.
|
private |
Number of derivatives calculated for each task.
|
private |
The number of forces on each thread The number of forces on each thread.
|
private |
A tempory set of vectors for holding forces over threads.
|
private |
True if not using MPI for parllisation.
|
private |
Are we using acc for parallisation.
|
private |
This holds the values before we pass them to the value.
|
private |
This holds tempory data that we use in performTask.
Hosted by GitHub
|
1.13.2
|