Ichthyostega.. | 8 Feb 18:34
Picon

An observation regarding Lumiera's parallelism


Hi Lumi hackers,

since we're discussing about advertisement, and also consider GSoC, there's
an
interesting observation I want to share.

Mostly, wer're discussing our thread handling in the render engine along
the lines of
"we have isolated jobs and a scheduler, and those jobs are made to avoid
blocking".

While this is certainly true, it not the full story. When considered at a
higher,
more abstract level, what we're actually doing in our engine is some kind
of
"modified fork-join". The similarities are striking -- the major difference
is, that fork-join is a generic handling pattern and typically implemented
through general purpose libraries, while we're creating something
specialised
and dedicated here. Yet still

- we have a "backbone level", which does "fork" new sub tasks: while
playback
  is running, we won't schedule all conceivable jobs at once; rather we're
  scheduling the first chunk plus a follow-up job to schedule the next
chunk.

- we *do* join the results together. We just do it in a clever way, so to
avoid
(Continue reading)


Gmane