Skip to content

when_all should be described explicitly as not intrinsically parallel #298

Open
@BenFrantzDale

Description

@BenFrantzDale

Coming from CPU-parallel programming, I expected when_all to be used as a customization point like bulk your allow schedulers to kick off parallelism. After discussion with @lewissbaker and others, it became clear that that’s not the design intent and that when_all is intended to be just the “join” part of a split/join, where the expected usage for CPU-parallel computing is when_all(schedule_on(sch, snd0), schedule_on(sch, snd1)).

I think the wording should do more to explicitly state that when_all is intended to not be parallel so people don’t write schedulers that customize it like that and don’t write algorithms assuming it parallelizes.

(I could see permitting when_all you schedule each of its senders, e.g., if the scheduler knows it has an abnormally small stack size.)

Related: #277

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-proposed-resolutionThis issue does not yet have a proposed resolution but needs one

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions