Ada 2022 'parallel' implementation beta for FSF GCC/GNAT

LWT supports one or more scheduler “plug-ins” which worry about mapping of light-weight threads to “server”/”kernel” threads. Presumably the O/S worries about mapping kernel threads to processors. Right now there are two plugins, one is OpenMP., The other is based on work-stealing, which in turn just uses a set of Ada tasks as the equivalent of server/kernel threads. The operations in System.Multiprocessor.Dispatching_Domains could presumably be used to pin the server threads, but that is not done currently, but could be. The LWT work-stealing plugin is open source, so feel free to fiddle with it a bit to see if you could automatically “pin” the server tasks/threads.

2 Likes