Peano
Loading...
Searching...
No Matches
exaparty.api.graphcompiler.MultisweepTaskGraph Namespace Reference

Functions

 translate_one_step_of_species_into_mesh_traversal (step, current_species_set, mesh_traversals, alter_particle_position, use_continuous_particles_sequences, StepType step_type, verbose)
 Actual translation of one step per particle species onto a task graph construction.
 
 map_onto_separate_mesh_traversals_constructing_task_graph (sequence_of_steps, ParticleSortingAndStorage particle_sorting_and_storage, StepType step_type, verbose)
 Forward to map_onto_separate_mesh_traversals_with_generic_mapper().
 
 initialisation_steps_onto_multisweep_task_graph_multiscale_sort_scattered_memory (species_sets, verbose)
 
 initialisation_steps_onto_multisweep_task_graph_bucket_sort_scattered_memory (species_sets, verbose)
 
 initialisation_steps_onto_multisweep_task_graph_multiscale_sort_coalesced_memory (species_sets, verbose)
 
 initialisation_steps_onto_multisweep_task_graph_bucket_sort_coalesced_memory (species_sets, verbose)
 
 particle_steps_onto_multisweep_task_graph_multiscale_sort_scattered_memory (species_sets, verbose)
 For a sequential ordering, i.e.
 
 particle_steps_onto_multisweep_task_graph_bucket_sort_scattered_memory (species_sets, verbose)
 For a sequential ordering, i.e.
 
 particle_steps_onto_multisweep_task_graph_multiscale_sort_coalesced_memory (species_sets, verbose)
 For a sequential ordering, i.e.
 
 particle_steps_onto_multisweep_task_graph_bucket_sort_coalesced_memory (species_sets, verbose)
 For a sequential ordering, i.e.
 

Function Documentation

◆ initialisation_steps_onto_multisweep_task_graph_bucket_sort_coalesced_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.initialisation_steps_onto_multisweep_task_graph_bucket_sort_coalesced_memory (   species_sets,
  verbose 
)
See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 223 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ initialisation_steps_onto_multisweep_task_graph_bucket_sort_scattered_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.initialisation_steps_onto_multisweep_task_graph_bucket_sort_scattered_memory (   species_sets,
  verbose 
)
See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 171 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ initialisation_steps_onto_multisweep_task_graph_multiscale_sort_coalesced_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.initialisation_steps_onto_multisweep_task_graph_multiscale_sort_coalesced_memory (   species_sets,
  verbose 
)
See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 197 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ initialisation_steps_onto_multisweep_task_graph_multiscale_sort_scattered_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.initialisation_steps_onto_multisweep_task_graph_multiscale_sort_scattered_memory (   species_sets,
  verbose 
)
See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 145 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ map_onto_separate_mesh_traversals_constructing_task_graph()

exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph (   sequence_of_steps,
ParticleSortingAndStorage  particle_sorting_and_storage,
StepType  step_type,
  verbose 
)

◆ particle_steps_onto_multisweep_task_graph_bucket_sort_coalesced_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.particle_steps_onto_multisweep_task_graph_bucket_sort_coalesced_memory (   species_sets,
  verbose 
)

For a sequential ordering, i.e.

1:1 mapping of steps per species onto traversals, it makes no real difference how we order the progress through the individual steps. So I just concatenate the steps per species.

See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 327 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ particle_steps_onto_multisweep_task_graph_bucket_sort_scattered_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.particle_steps_onto_multisweep_task_graph_bucket_sort_scattered_memory (   species_sets,
  verbose 
)

For a sequential ordering, i.e.

1:1 mapping of steps per species onto traversals, it makes no real difference how we order the progress through the individual steps. So I just concatenate the steps per species.

See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 275 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ particle_steps_onto_multisweep_task_graph_multiscale_sort_coalesced_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.particle_steps_onto_multisweep_task_graph_multiscale_sort_coalesced_memory (   species_sets,
  verbose 
)

For a sequential ordering, i.e.

1:1 mapping of steps per species onto traversals, it makes no real difference how we order the progress through the individual steps. So I just concatenate the steps per species.

See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 301 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ particle_steps_onto_multisweep_task_graph_multiscale_sort_scattered_memory()

exaparty.api.graphcompiler.MultisweepTaskGraph.particle_steps_onto_multisweep_task_graph_multiscale_sort_scattered_memory (   species_sets,
  verbose 
)

For a sequential ordering, i.e.

1:1 mapping of steps per species onto traversals, it makes no real difference how we order the progress through the individual steps. So I just concatenate the steps per species.

See also
map_onto_separate_mesh_traversals()
Parameters
concatenate_steps_of_species[Species] Sequence of particle species to be handled.
verbose{True, False}

Definition at line 249 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.MultisweepTaskGraph.map_onto_separate_mesh_traversals_constructing_task_graph().

Here is the call graph for this function:

◆ translate_one_step_of_species_into_mesh_traversal()

exaparty.api.graphcompiler.MultisweepTaskGraph.translate_one_step_of_species_into_mesh_traversal (   step,
  current_species_set,
  mesh_traversals,
  alter_particle_position,
  use_continuous_particles_sequences,
StepType  step_type,
  verbose 
)

Actual translation of one step per particle species onto a task graph construction.

We basically forward to exaparty.api.graphcompiler.TaskGraph.translate_one_step_of_species_into_mesh_traversal() but we set the flag synchronise_task_graph_after_each_mesh_sweep() to false. This does not mean that the arising task graph is bare of all synchronisation. It just means that we don't immediately synchronise after each step.

All the wrappers have implicitly built in some synchronisation: A vertex issues a task with a number. If this number is already tied to an existing task, this creates an in-out dependency. However, we have three types of task numbers per species:

  • touch vertex first task numbers
  • touch cell first task numbers
  • touch vertex last task numbers

Each observer will create vertex first-vertex first-cell-vertex last chains of tasks with an arbitrary number of first and last instances. The important thing to keep things correct therefore is that we establish vertex last-vertex first relations here which ensure that one chain does not mangle into the chain of the predecessor.

This is the added thing here. Global syncs will automatically be added where they are necessary (cmp. translate_one_step_of_species_into_mesh_traversal() and the variable synchronise_after_each_mesh_traversal therein).

SynchroniseVerticesWithPreviousMeshSweep

  • wrapper alles first
  • nix in touch cell last

Definition at line 29 of file MultisweepTaskGraph.py.

References exaparty.api.graphcompiler.TaskGraph.translate_one_step_of_species_into_mesh_traversal().

Here is the call graph for this function: