From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: border1.nntp.ams3.giganews.com!border1.nntp.ams2.giganews.com!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.246.MISMATCH!nx02.iad01.newshosting.com!newshosting.com!69.16.185.21.MISMATCH!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!newsfe02.iad.POSTED!not-for-mail From: Brad Moore User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130307 Thunderbird/17.0.4 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: ANN: Paraffin 4.0 and Paraffinalia for Ada 2012 with Ravenscar support and task pools Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <0HZ7t.160452$m21.34226@newsfe02.iad> NNTP-Posting-Host: 68.145.219.148 X-Complaints-To: internet.abuse@sjrb.ca X-Trace: 1365272380 68.145.219.148 (Sat, 06 Apr 2013 18:19:40 UTC) NNTP-Posting-Date: Sat, 06 Apr 2013 18:19:40 UTC Date: Sat, 06 Apr 2013 12:20:11 -0600 X-Received-Bytes: 4275 X-Original-Bytes: 4531 Xref: number.nntp.dca.giganews.com comp.lang.ada:180961 Date: 2013-04-06T12:20:11-06:00 List-Id: I am pleased to announce a new major release of Paraffin for Ada 2012. Paraffin is a set of Ada 2012 generics that may be used to add parallelism to iterative loops and recursive code. Paraffin now includes generics for both Ravenscar and non-Ravenscar use. The Ravenscar version utilizes static task pools with dispatching domains suitable for real-time programming. Paraffin also includes Paraffinalia, which is a suit of useful parallel utilities that utilize the Paraffin generics. These include generics for; 1) generic to integrating a function in parallel 2) generic to apply quicksort algorithm in parallel to an array 3) generic to apply fast fourier transform to an array of data. 4) generic Red-Black tree container that performs some operations in parallel. 5) function to solve matrices using Gauss-Jordan Elimination 6) generic to perform prefix sum calculations The Ada 2012 version of the code is a major change to the API, which is why this is a major release. The 2005 version still has the old interface, and currently is treated as an archive, though the 2012 version of the API may eventually get backported to 2005 at some point. The latest stable release and older releases may be downloaded from; https://sourceforge.net/projects/paraffin/files/ For those who want the current development versions of the source they can download using git (http://git-scm.com/) by issuing the following commands; mkdir sandbox cd sandbox git clone git://git.code.sf.net/p/paraffin/code paraffin-code The current development version typically will correspond to the latest stable release, but may at times be unstable when new features are being worked on. Major New Features include: - The new API is more unified between parallel loops and parallel recursion. A parallelism manager is declared at the site of the Parallelism OPportunity (POP). - Ada 2012 support and use of Ada 2012 language features. - Ravenscar generics added for parallel real-time programming. The Ravenscar generics require declaration of static worker task pools, since all tasks have to declared statically. The Ravenscar task pools can interoperate with Ada 2012 dispatching domains. - Exception handling added to worker tasks which store the exception and reraise it in the main task before returning from the parallelism opportunity - Task pool versions also added for non-ravenscar. It was thought that task pools would introduce a performance benefit, but on the tested platforms this appears to not be the case, as creating tasks on the fly is approximately the same performance as reusing tasks from a task pool. Further, for non-ravenscar, using a bounded task pool introduces other undesirable affects centered around the cas of handling when more tasks are requested than exist in the pool. Therefore, it is recommended for non-ravenscar use that the non-pooled versions of the generics be used. The pooled versions are provided for experimental purposes. - No longer need to with target specific packages to use barriers, or affinity, since these are included in Ada 2012. This simplifies use in GNAT project files, since only the top level paraffin folder needs to be mentioned, if that folder is tagged to recursively pull in all the sub-folders in the project file. - Many other changes, including improved folder structure. Brad Moore