• Light-weight parallelism threading library based on Ada 2022 features

    From Tucker Taft@21:1/5 to All on Tue Oct 31 15:43:44 2023
    A full implementation of the parallel features of Ada 2022 is yet to be released. In the meantime, here is a light-weight-threading library that provides essentially all of the parallel features of Ada 2022, using various generics, etc. Scheduling is
    provided using a plug-in architecture. If no scheduler is plugged in, the light-weight threads are simply executed sequentially. If a light-weight-thread scheduler is plugged in, then the light-weight threads spawned by instances of the various generic
    packages are managed by that scheduler.

    There are currently two LWT scheduler plug-ins:
    * a wrapper for the GNU implementation of OpenMP (lwt-openmp.ads)
    * a work-stealing based plug-in, written entirely in Ada

    Below is a link to the "readme.md" documentation for the GitHub lwt library. It is currently part of the ParaSail GitHub repository, but the files in "lwt" are actually independent of ParaSail. ParaSail has its own work-stealing-based scheduler built-
    in, but at some point we plan to shift over to using the "lwt" library. But at the moment, there is no dependence either way between the ParaSail interpreter/compiler and the lwt library.

    https://github.com/parasail-lang/parasail/tree/main/lwt#light-weight-threading-library-for-ada-2022

    Feel free to open GitHub Issues if you find problems with the implementation, or have suggestions for improvements.

    Enjoy!

    -Tucker Taft

    The ParaSail GitHub repository was created by my colleague Olivier Henley, and he has also helped to improve the documentation and testing scripts. Much appreciated!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)