A virtual class (with convenient static methods) to define parallel task performance models.
More...
#include <ParallelModel.h>
|
virtual std::vector< double > | getWorkPerThread (double total_work, unsigned long num_threads)=0 |
| A method the, for this parallel model, computes how much work each thread that is part of a parallel task should do. More...
|
|
A virtual class (with convenient static methods) to define parallel task performance models.
◆ AMDAHL()
std::shared_ptr< ParallelModel > wrench::ParallelModel::AMDAHL |
( |
double |
alpha | ) |
|
|
static |
Create an instance of an "Amdahl" parallel model.
- Parameters
-
alpha | the fraction (i.e., a number between 0.0 and 1.0) of the task's work that is perfectly parallelizable. Setting this value to 0 means that the task is purely sequential, and setting it to 1 means that the task is perfectly parallelizable. |
- Returns
- a model instance
◆ CONSTANTEFFICIENCY()
std::shared_ptr< ParallelModel > wrench::ParallelModel::CONSTANTEFFICIENCY |
( |
double |
efficiency | ) |
|
|
static |
Create an instance of a "Constant Efficiency" parallel model.
- Parameters
-
efficiency | the parallel efficiency (which does not depend on the number of threads/cores). |
- Returns
- a model instance
◆ CUSTOM()
std::shared_ptr< ParallelModel > wrench::ParallelModel::CUSTOM |
( |
std::function< std::vector< double >(double, long)> |
lambda | ) |
|
|
static |
Create an instance of a "Custom" parallel model.
- Parameters
-
lambda | a function that, when given a total flop amount and a number of threads, returns a vector of per-thread work amounts |
- Returns
- a model instance
◆ getWorkPerThread()
virtual std::vector<double> wrench::ParallelModel::getWorkPerThread |
( |
double |
total_work, |
|
|
unsigned long |
num_threads |
|
) |
| |
|
pure virtual |
The documentation for this class was generated from the following files: