Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Trespassers will be shot. Survivors will be SHOT AGAIN!


devel / comp.lang.ada / Light-weight parallelism threading library based on Ada 2022 features

SubjectAuthor
o Light-weight parallelism threading library based on Ada 2022 featuresTucker Taft

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

<550902b3-c46a-4d87-a9c1-0db9f0caa4fen@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10234&group=comp.lang.ada#10234

  copy link   Newsgroups: comp.lang.ada
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: i2pn2.org!i2pn.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@gmail.com (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
 by: Tucker Taft - Tue, 31 Oct 2023 22:43 UTC

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!

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor