wrench::PegasusWorkflowParser Class Reference

A class that implement methods to read workflow files provided by the Pegasus project. More...

#include <PegasusWorkflowParser.h>

Static Public Member Functions

static WorkflowcreateExecutableWorkflowFromJSON (const std::string &filename, const std::string &reference_flop_rate, bool redundant_dependencies=false, unsigned long min_cores_per_task=1, unsigned long max_cores_per_task=1, bool enforce_num_cores=false)
 Create an NON-abstract workflow based on a JSON file. More...
 
static WorkflowcreateWorkflowFromDAX (const std::string &filename, const std::string &reference_flop_rate, bool redundant_dependencies=false, unsigned long min_cores_per_task=1, unsigned long max_cores_per_task=1, bool enforce_num_cores=false)
 Create an abstract workflow based on a DAX file. More...
 
static WorkflowcreateWorkflowFromJSON (const std::string &filename, const std::string &reference_flop_rate, bool redundant_dependencies=false, unsigned long min_cores_per_task=1, unsigned long max_cores_per_task=1, bool enforce_num_cores=false)
 Create an abstract workflow based on a JSON file. More...
 

Detailed Description

A class that implement methods to read workflow files provided by the Pegasus project.

Member Function Documentation

◆ createExecutableWorkflowFromJSON()

static Workflow* wrench::PegasusWorkflowParser::createExecutableWorkflowFromJSON ( const std::string &  filename,
const std::string &  reference_flop_rate,
bool  redundant_dependencies = false,
unsigned long  min_cores_per_task = 1,
unsigned long  max_cores_per_task = 1,
bool  enforce_num_cores = false 
)
static

Create an NON-abstract workflow based on a JSON file.

Parameters
filenamethe path to the JSON file
reference_flop_ratea reference compute speed (in flops/sec), assuming a task's computation is purely flops. This is needed because JSON files specify task execution times in seconds, but the WRENCH simulation needs some notion of "amount of computation" to apply reasonable scaling. (Because the XML platform description specifies host compute speeds in flops/sec). The times in the JSON file are thus assumed to be obtained on an machine with flop rate reference_flop_rate.
redundant_dependenciesWorkflows provided by Pegasus sometimes include control/data dependencies between tasks that are already induced by other control/data dependencies (i.e., they correspond to transitive closures or existing edges in the workflow graphs). Passing redundant_dependencies=true force these "redundant" dependencies to be added as edges in the workflow. Passing redundant_dependencies=false will ignore these "redundant" dependencies. Most users woudl likely pass "false".
min_cores_per_taskIf the JSON file does not specify a number of cores for a task, the minimum number of cores on which the task can run is set to this value. (default is 1)
max_cores_per_taskIf the JSON file does not specify a number of cores for a task, the maximum number of cores on which the task can run is set to this value. (default is 1)
enforce_num_coresUse the min_cores_per_task and max_cores_per_task values even if the JSON file specifies a number of cores for a task. (default is false)
Returns
a workflow
Exceptions
std::invalid_argument

◆ createWorkflowFromDAX()

static Workflow* wrench::PegasusWorkflowParser::createWorkflowFromDAX ( const std::string &  filename,
const std::string &  reference_flop_rate,
bool  redundant_dependencies = false,
unsigned long  min_cores_per_task = 1,
unsigned long  max_cores_per_task = 1,
bool  enforce_num_cores = false 
)
static

Create an abstract workflow based on a DAX file.

Parameters
filenamethe path to the DAX file
reference_flop_ratea reference compute speed (in flops/sec), assuming a task's computation is purely flops. This is needed because DAX files specify task execution times in seconds, but the WRENCH simulation needs some notion of "amount of computation" to apply reasonable scaling. (Because the XML platform description specifies host compute speeds in flops/sec). The times in the DAX file are thus assumed to be obtained on an machine with flop rate reference_flop_rate.
redundant_dependenciesWorkflows provided by Pegasus sometimes include control/data dependencies between tasks that are already induced by other control/data dependencies (i.e., they correspond to transitive closures or existing edges in the workflow graphs). Passing redundant_dependencies=true force these "redundant" dependencies to be added as edges in the workflow. Passing redundant_dependencies=false will ignore these "redundant" dependencies. Most users would likely pass "false". (default is false)
min_cores_per_taskIf the DAX file does not specify a number of cores for a task, the minimum number of cores on which the task can run is set to this value. (default is 1)
max_cores_per_taskIf the DAX file does not specify a number of cores for a task, the maximum number of cores on which the task can run is set to this value. (default is 1)
enforce_num_coresUse the min_cores_per_task and max_cores_per_task values even if the DAX file specifies a number of cores for a task. (default is false)
Returns
a workflow
Exceptions
std::invalid_argument

◆ createWorkflowFromJSON()

static Workflow* wrench::PegasusWorkflowParser::createWorkflowFromJSON ( const std::string &  filename,
const std::string &  reference_flop_rate,
bool  redundant_dependencies = false,
unsigned long  min_cores_per_task = 1,
unsigned long  max_cores_per_task = 1,
bool  enforce_num_cores = false 
)
static

Create an abstract workflow based on a JSON file.

Parameters
filenamethe path to the JSON file
reference_flop_ratea reference compute speed (in flops/sec), assuming a task's computation is purely flops. This is needed because JSON files specify task execution times in seconds, but the WRENCH simulation needs some notion of "amount of computation" to apply reasonable scaling. (Because the XML platform description specifies host compute speeds in flops/sec). The times in the JSON file are thus assumed to be obtained on an machine with flop rate reference_flop_rate.
redundant_dependenciesWorkflows provided by Pegasus sometimes include control/data dependencies between tasks that are already induced by other control/data dependencies (i.e., they correspond to transitive closures or existing edges in the workflow graphs). Passing redundant_dependencies=true force these "redundant" dependencies to be added as edges in the workflow. Passing redundant_dependencies=false will ignore these "redundant" dependencies. Most users would likely pass "false".
min_cores_per_taskIf the JSON file does not specify a number of cores for a task, the minimum number of cores on which the task can run is set to this value. (default is 1)
max_cores_per_taskIf the JSON file does not specify a number of cores for a task, the maximum number of cores on which the task can run is set to this value. (default is 1)
enforce_num_coresUse the min_cores_per_task and max_cores_per_task values even if the JSON file specifies a number of cores for a task. (default is false)
Returns
a workflow
Exceptions
std::invalid_argument

The documentation for this class was generated from the following file: