Peano
Loading...
Searching...
No Matches
CellTaskProducerConsumer.py File Reference

Go to the source code of this file.

Namespaces

namespace  peano4
 
namespace  peano4.api
 
namespace  peano4.api.taskgraph
 The task graph abstraction allows users to formalise their solver steps over small task graphs which are then lowered into a sequence of Peano mesh traversals.
 
namespace  peano4.api.taskgraph.compiler
 Compilers are simple functions.
 
namespace  peano4.api.taskgraph.compiler.CellTaskProducerConsumer
 

Functions

List["peano4.api.solversteps.Step"] peano4.api.taskgraph.compiler.CellTaskProducerConsumer.translate_with_sequential (Graph graph, str identifier, "peano4.api.Project" peano_project)
 Split tasks writing cell data into producer and consumer, and map each task onto its own mesh traversal.
 
List["peano4.api.solversteps.Step"] peano4.api.taskgraph.compiler.CellTaskProducerConsumer.translate_with_fusion (Graph graph, str identifier, "peano4.api.Project" peano_project)
 Split tasks writing cell data into producer and consumer, and fuse tasks into as few mesh traversals as possible.
 
List["peano4.api.solversteps.Step"] peano4.api.taskgraph.compiler.CellTaskProducerConsumer._translate (Graph graph, str identifier, "peano4.api.Project" peano_project, bool use_fusion)
 Task graph compiler which splits tasks writing cell data into a producer spawning tasks and a consumer waiting for them (work in progress)
 
str peano4.api.taskgraph.compiler.CellTaskProducerConsumer._task_number_attribute_name (Task task, int action_set_index)
 CamelCase version of the task's name followed by ActionSet, the action set index and TaskNumber.
 
Task peano4.api.taskgraph.compiler.CellTaskProducerConsumer._copy_task (Task task)
 Shallow copy of a task with its own lists and dictionaries, so we can alter the copy's dependencies without touching the original graph.
 
bool peano4.api.taskgraph.compiler.CellTaskProducerConsumer._exclusively_writes_cell_data (Task task)
 True if task declares at least one cell submodel as WRITE or READ_AND_WRITE, and no face or vertex submodel as WRITE or READ_AND_WRITE.
 
List[str] peano4.api.taskgraph.compiler.CellTaskProducerConsumer._has_events_after_touch_cell_first_time (Task task)
 List the events which the task's action sets realise and which a producer would invoke before its spawned tasks have necessarily terminated: unprepareTraversal(), endTraversal() and the touch...LastTime() events.
 
 peano4.api.taskgraph.compiler.CellTaskProducerConsumer._split_cell_tasks (Graph graph)
 Build the producer-consumer graph.
 
List[str] peano4.api.taskgraph.compiler.CellTaskProducerConsumer._non_static_attribute_names (str attributes)
 Names of the non-static attributes declared in the C++ snippet returned by an action set's get_attributes().
 
str peano4.api.taskgraph.compiler.CellTaskProducerConsumer._generator_name (submodel)
 Name of the generator class which realises the submodel in C++.
 
bool peano4.api.taskgraph.compiler.CellTaskProducerConsumer._is_held_via_smart_pointer (submodel)
 True if the submodel's generator holds the data via a smart pointer, i.e.
 
 peano4.api.taskgraph.compiler.CellTaskProducerConsumer._enumerators_used_by (Task task, str task_body)
 Names of the vertex and face enumerators which a task body might use, i.e.
 
 peano4.api.taskgraph.compiler.CellTaskProducerConsumer._warn_about_unsafe_task (Task task, int action_set_index, "peano4.api.solversteps.ActionSet" action_set, str task_body)
 Issue the warnings about task bodies which might not be safe.
 
 peano4.api.taskgraph.compiler.CellTaskProducerConsumer._spawn_tasks (split_tasks, "peano4.api.datamodel.DaStGen2" task_labels)
 Make the producers spawn tasks and the consumers wait for them, and add one task number per spawning action set to the task labels.
 

Variables

tuple peano4.api.taskgraph.compiler.CellTaskProducerConsumer._SMART_POINTER_HINT