Skip to content

Distributed computation - parallelism & concurrency #167

@dumblob

Description

@dumblob

Computation does not scale serially. Massively parell systems are on quick rise (including extreme things like fabric CPUs and MPPAs with thousands of mini CPU cores all packaged in one physical CPU). Any new language has to provide first class support for running the code on such systems efficiently.

See the table with challenges and coarse-grained classification of such systems in vlang/v#1868 .

Kind shall support parallel (concurrent) processing. Note also, that I don't think Kind shall focus on instruction-level parallelism as that's a "solved issue" (emitting C code is enough as C compilers - despite them being limited by the language - do the best job of all existing mature tools nowadays - incl. offloading to GPUs, FPGAs etc.).

Instead Kind shall focus on supporting parallelism on a human-guided level for things which require to know semantics of the whole algorithm/system to be efficiently parallelizable (e.g. a compiler will probably never find out, that it shall paralellize at least the dispatch loop of incoming HTTP requests to handle them in parallel because for a compiler this particular piece of algorithm is a needle in a haystack of many more interesting places to parallelize, but with lower final impact than the needle).

For the (tiny and rarely needed) rest there is intrinsics (but I'm not sure Kind should adopt intrinsics as it feels a bit alien in Kind).

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions