Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] View of /branches/cuda/doc/implementation/life-of-a-strand.md
ViewVC logotype

View of /branches/cuda/doc/implementation/life-of-a-strand.md

Parent Directory Parent Directory | Revision Log Revision Log

Revision 5597 - (download) (annotate)
Mon Jun 21 17:51:35 2021 UTC (12 months, 2 weeks ago) by jhr
File size: 1035 byte(s)
  populate new CUDA branch with Adrian's code
## Life of a strand

This note documents the various stages in the life of a strand and, specifically,
when they occur with respect to the super-steps.

The important events in the life of a strand are:

1. allocation

2. initialization -- the strand initialization method is invoked when the strand
   is created; either by a ``create_grid`` or ``create_collection`` operation
   at the start of the program, or by a ``new`` operation.  
   A strand created by ``new`` is visible to the program starting with the global
   update phase of the superstep in which it was created.

3. start method (optional) --
   the start method is run during the strand-update phase prior to the strand's
   first update.  Any state changes caused by the start method are **not** visible
   to other strands until the next super-step.

4. updates --
   the strand update method is invoked each super-step as long as the strand is
   active and the program is running.

5. termination
    * stabilize
    * die
    * global stabilize
    * global die

ViewVC Help
Powered by ViewVC 1.0.0