The following table summarizes the available language/hardware implementations for each example from. Here "serial" refers to a standard single-core, single-thread implementation. +----------+----------+----------+---------------------------+ | Example | Language | Hardware | Implementations | +==========+==========+==========+===========================+ | ``mcpi`` | C | CPU | serial | | | | +---------------------------+ | | | | OpenMP | | +----------+----------+---------------------------+ | | C++ | CPU | serial | | | | +---------------------------+ | | | | ``std::async`` [#]_ | | | | +---------------------------+ | | | | OpenMP | | +----------+----------+---------------------------+ | | Python | CPU | serial | | | | +---------------------------+ | | | | ``dask.distributed`` [#]_ | +----------+----------+----------+---------------------------+ .. [#] ``std::async`` from ```` was used for asynchronous multithreading, in contrast to synchronous multithreading through via ``#pragma omp`` directives. .. [#] ``dask.distributed`` from Dask was used for asynchronous multiprocessing, as parallel execution through multithreading with Python objects in CPython is not possible due to the infamous The following table summarizes the available language/hardware implementations for each example from. Here "serial" refers to a standard single-core, single-thread implementation. +----------+----------+----------+---------------------------+ | Example | Language | Hardware | Implementations | +==========+==========+==========+===========================+ | ``mcpi`` | C | CPU | serial | | | | +---------------------------+ | | | | OpenMP | + +----------+----------+---------------------------+ | | C++ | CPU | serial | | | | +---------------------------+ | | | | ``std::async`` [#]_ | | | | +---------------------------+ | | | | OpenMP | | +----------+----------+---------------------------+ | | Python | CPU | serial | | | | +---------------------------+ | | | | ``dask.distributed`` [#]_ | +----------+----------+----------+---------------------------+ .. [#] ``std::async`` from ```` was used for asynchronous multithreading, in contrast to synchronous multithreading through via ``#pragma omp`` directives. .. [#] ``dask.distributed`` from Dask was used for asynchronous multiprocessing, as parallel execution through multithreading with Python objects in CPython is not possible due to the infamous bla