From mboxrd@z Thu Jan 1 00:00:00 1970 X-Received: by 2002:ad4:42b4:0:b0:66c:f774:2f80 with SMTP id e20-20020ad442b4000000b0066cf7742f80mr244286qvr.2.1698792224894; Tue, 31 Oct 2023 15:43:44 -0700 (PDT) X-Received: by 2002:a05:6830:336f:b0:6cd:877:ba0b with SMTP id l47-20020a056830336f00b006cd0877ba0bmr3936206ott.7.1698792224626; Tue, 31 Oct 2023 15:43:44 -0700 (PDT) Path: eternal-september.org!news.eternal-september.org!feeder2.eternal-september.org!eternal-september.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 31 Oct 2023 15:43:44 -0700 (PDT) Injection-Info: google-groups.googlegroups.com; posting-host=74.104.185.8; posting-account=PvmV9AoAAAD6m3XXwubwsbGwa7cDXv1N NNTP-Posting-Host: 74.104.185.8 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <550902b3-c46a-4d87-a9c1-0db9f0caa4fen@googlegroups.com> Subject: Light-weight parallelism threading library based on Ada 2022 features From: Tucker Taft Injection-Date: Tue, 31 Oct 2023 22:43:44 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 2699 Xref: news.eternal-september.org comp.lang.ada:65823 List-Id: A full implementation of the parallel features of Ada 2022 is yet to be rel= eased. In the meantime, here is a light-weight-threading library that prov= ides essentially all of the parallel features of Ada 2022, using various ge= nerics, etc. Scheduling is provided using a plug-in architecture. If no s= cheduler is plugged in, the light-weight threads are simply executed sequen= tially. If a light-weight-thread scheduler is plugged in, then the light-w= eight threads spawned by instances of the various generic packages are mana= ged by that scheduler. =20 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-ste= aling-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-thread= ing-library-for-ada-2022 Feel free to open GitHub Issues if you find problems with the implementatio= n, 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!